ssh-keygen -t rsa -C "test@mail.com" -b 4096 -N "" -f ./test # -t 密鑰類型 # -C 備註 # -b bits 指定密鑰長度。對於RSA密鑰,最小要求768位,默認是2048位。DSA密鑰必須剛好是1024位(FIPS 186-2 標準的要求) # -f 輸出文件 # -N 提供一個新的密碼(若是有密碼則在鏈接的時候須要輸入密碼),這裏密碼爲空 # 更多說明參考 https://www.cnblogs.com/yanglang/p/9563496.html
運行輸出以下html
Generating public/private rsa key pair. Your identification has been saved in ./test. Your public key has been saved in ./test.pub. The key fingerprint is: SHA256:S7N4ThFZs21lICbyOUV2EQEUxc61rNw6X+ig0Kzk1fM test@mail.com The key's randomart image is: +---[RSA 4096]----+ | . .o%=B=o | | o O *.o. | | * .ooo . | | o .o o | | S . o | | o B .o .. | | . B + +.. .| | * + .o= . | | + . oE | +----[SHA256]-----+
運行成功後會在當前目錄生成test
(私鑰匙)和test_pub
(公鑰)文件bash
-rw------- 1 Ryou staff 3434 8 23 13:10 test -rw-r--r-- 1 Ryou staff 739 8 23 13:10 test.pub
注:若是使用了-N
密碼參數,在鏈接的時候會要求輸入密碼dom
▶ ssh 127.0.0.1 -i ./test "ls" Enter passphrase for key './test':
首先將上面建立的公鑰(test_pub)
內容添加到目標機器的~/.ssh/authorized_keys
文件ssh
ssh-rsa AAAA*** "這裏省略***字節" test@mail.com
把上面建立的test
文件更名爲id_rsa
,移到~/.ssh/
目錄,即ide
▶ ls ~/.ssh/ -rw------- 2 Ryou staff 400 12 30 2016 id_rsa
這個文件是本用戶的默認私鑰,在方法1
方法2
中沒指定私鑰的狀況下會使用這個做爲私鑰code
ssh 127.0.0.1 -o stricthostkeychecking=no -i ./test
參數說明htm
# -i ./test 指定私鑰 # -o stricthostkeychecking=no 不作嚴格檢查,省略該參數會在第一次鏈接的時候提示如下信息,要求輸入yes The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:tQl1ItmIvXn0cszPC8YUNcQmIkqwC1tdoV2BoOR02tI. Are you sure you want to continue connecting (yes/no)?
輸入yes確認後,會在~/.ssh/known_hosts
中添加一條記錄blog
# ~/.ssh/known_hosts 的文件內容 127.0.0.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKZfOi5mnjuEH72CYj/FQHtWYH91m32Ej9H8h6VlZIrqbg19vIffM8gDPv+EBDNaqnDXiRfMxZ/2gAlr0FqkQa8=
修改文件~/.ssh/config
ci
# 分別是 別名 主機地址 用戶名 私鑰地址 Host localhost HostName 127.0.0.1 User root IdentityFile "/Users/Ryou/.ssh/test"
添加完畢後,直接執行 ssh localhost
就能夠鏈接了it