在開發中,經常需要從一台主機ssh登陸到另一台主機去,每次都需要輸一次login/password,很繁瑣。
使用金鑰登陸就可以不用輸入使用者名稱和密碼了
實現從主機a免密碼登陸到主機b(即把主機a的pub金鑰--公鑰,新增到主機b的~/.ssh/authorized_keys檔案中即可),需要以下幾個步驟:
1. 在主機a「~/.ssh/」目錄下執行命令「ssh-keygen -t rsa」(生成過程中,一路回車),生成兩個檔案id_rsa和id_rsa_pub,這兩個檔案實際上是乙個金鑰對,id_rsa是私鑰,id_rsa_pub是公鑰;
2. 將檔案id_rsa_pub從主機a拷貝(可以使用scp命令)到主機b「~/.ssh/」目錄下;
scp local_file remote_username@remote_ip:remote_folder3. 登陸到主機b上, 進入「~/.ssh/」目錄,將從主機拷貝來的id_rsa_pub檔案新增到檔案「authorized_keys」尾部(cat id_rsa_pub>>authorized_keys),若檔案「authorized_keys」不存在,則建立;確保「~/.ssh/authorized_keys」的許可權至少為600;
4. 從主機a登陸主機b,第一次登陸時主機b要自動設定known_hosts檔案,所以需要輸入yes,以後就不需要了;
p.s.當然你登陸主機a和主機b用的是同乙個使用者名稱
配置使用者的公鑰登陸時,配置完authorized_keys居然一直不生效,於是google之,發現原來是因為.ssh目錄和下面檔案的許可權問題導致的,因為目錄的許可權已經超過了sshd的要求許可權。
如果希望ssh公鑰生效需滿足至少下面兩個條件:
1) .ssh目錄的許可權必須是700
2) .ssh/authorized_keys檔案許可權必須是600
可能出現的問題,主機a登陸主機b時,自動登陸會失效:「agent admitted failure to sign using the key.」
在主機a使用 ssh-add 指令將私鑰 加進來 (根據個人的密匙命名不同更改 id_rsa)
ssh-add ~/.ssh/id_rsa如果報「could not open a connection to your authentication agent.」
則執行命令:
錦上添花:
假設你的使用者名為user,已經設定好了金鑰登陸主機b。那麼你可以在shell的配置檔案(比如.bashrc)裡定義乙個alias
alias b='ssh user@b'
以後每次你啟動shell終端後,輸入b,回車,直接就ssh登陸到主機b上。
Linux ssh金鑰建立及金鑰登入
在命令列輸入ssh keygen t rsa生成金鑰 在詢問框中一路回車,會在 root ssh 資料夾下建立公鑰id rsa.pub和私鑰id rsa使用命令拷貝公鑰到伺服器上ssh copy id i root ssh id rsa.pub root 11.22.33.44ssh copy id...
Linux ssh遠端登入
1 使用ssh遠端登入linux主機 ssh 伺服器使用者名稱 伺服器ip,s輸入口令即可。2 在windows上登入linux的常用軟體有securcrt和putty 3 使用ssh秘匙跳過密碼輸入遠端登入 一 本地生成公匙和秘匙。執行 ssh keygen t rsa rsa的目錄選擇使用者主目...
Linux ssh登入命令
常用格式 ssh l login name p port user hostname 舉例不指定使用者 ssh 192.168.0.11 指定使用者 ssh l root 192.168.0.11 ssh root 192.168.0.11 如果修改過ssh登入埠的可以 ssh p 12333 19...