使用公鑰進行遠程登陸主機/遠程執行命令

1. 生成密鑰對

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':

2. 使用密鑰對

首先將上面建立的公鑰(test_pub)內容添加到目標機器~/.ssh/authorized_keys文件ssh

ssh-rsa AAAA*** "這裏省略***字節" test@mail.com

方法0 使用默認私鑰

把上面建立的test文件更名爲id_rsa,移到~/.ssh/目錄,即ide

▶ ls ~/.ssh/
-rw-------  2 Ryou  staff    400 12 30  2016 id_rsa

這個文件是本用戶的默認私鑰,在方法1 方法2中沒指定私鑰的狀況下會使用這個做爲私鑰code

方法1

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=

方法2 使用別名

修改文件~/.ssh/configci

# 分別是 別名 主機地址 用戶名 私鑰地址
Host localhost
HostName 127.0.0.1
User root
IdentityFile "/Users/Ryou/.ssh/test"

添加完畢後,直接執行 ssh localhost 就能夠鏈接了it

相關文章
相關標籤/搜索