ssh 免密碼登錄

1、準備工做:
一、確認本機sshd的配置文件(須要root權限)
shell

 #vim /etc/ssh/sshd_config


找到如下內容,並去掉註釋符」#「
vim

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

#關閉密碼登錄
PasswordAuthentication no


二、若是修改了配置文件須要重啓sshd服務 (須要root權限)
安全

#systemctl restart sshd.service

配置SSH無密碼登陸須要3步:
    1.生成公鑰和私鑰
    2.導入公鑰到認證文件,更改權限
    3.測試


1.生成公鑰和私鑰
服務器

$ssh-keygen -t rsa

   默認在 ~/.ssh目錄生成兩個文件:
    id_rsa      :私鑰
    id_rsa.pub  :公鑰


2.導入公鑰到認證文件,更改權限
    2.1 導入本機
ssh

$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys



    2.2 導入要免密碼登陸的服務器
        首先將公鑰複製到服務器
測試

$scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub

        而後,將公鑰導入到認證文件(這一步的操做在服務器上進行)
rest

$cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

  2.3 在服務器上更改權限
code

 $chmod 700 ~/.ssh
 $chmod 644 ~/.ssh/authorized_keys     #若是是Red Hat 5.6的話,最好改爲600,不然認爲是不安全的~


解決本地登錄用戶與遠程登錄用戶不一致io

好吧,這事很糾結,雖然不用輸入密碼了,可是還得 ssh username@hostname 來登錄,很不爽,你懂的。 其實解決也很簡單(but是同事告訴個人,老臉一紅),修改本地登錄用戶的 ~/.ssh/config 文件,若是木有的話就自個兒建一個吧,內容以下:class

Host hostname    
    user liluo

這樣,本地和遠程登錄用戶名不一致也能夠 ssh hostname 登錄了。

相關文章
相關標籤/搜索