Linux系统中如何设置SSH免密登录
Linux系統中如何設置SSH免密登錄,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
ssh是由IETF網絡小組編寫的專門遠程登錄會話和其他網絡服務提供安全性的協議,目前大多數系統都支持SSH。
我們先使用usera 登錄 serverA 服務器
[root@serverA~]#su-usera[usera@serverA~]$pwd/home/usera
然后在serverA上生成密鑰對
[usera@serverA~]$ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/home/usera/.ssh/id_rsa):Createddirectory'/home/usera/.ssh'.Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/home/usera/.ssh/id_rsa.Yourpublickeyhasbeensavedin/home/usera/.ssh/id_rsa.pub.Thekeyfingerprintis:39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01usera@serverAThekey'srandomartimageis:+--[RSA2048]----+|Eo*||@.||=*||oo.||.S.||+..||+..||+.o.||.o=o.|+-----------------+
此時會在/home/usera/.ssh目錄下生成密鑰對
[usera@serverA~]$ls-la.ssh總用量16drwx------2userausera40968月2409:22.drwxrwx---12userausera40968月2409:22..-rw-------1userausera16758月2409:22id_rsa-rw-r--r--1userausera3998月2409:22id_rsa.pub
然后將公鑰上傳到serverB 服務器的,并以userb用戶登錄
[usera@portalweb1~]$ssh-copy-iduserb@10.124.84.20Theauthenticityofhost'10.124.84.20(10.124.84.20)'can'tbeestablished.RSAkeyfingerprintisf0:1c:05:40:d3:71:31:61:b6:ad:7c:c2:f0:85:3c:cf.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'10.124.84.20'(RSA)tothelistofknownhosts.userb@10.124.84.29'spassword:Nowtryloggingintothemachine,with"ssh'userb@10.124.84.20'",andcheckin:
.ssh/authorized_keys
tomakesurewehaven'taddedextrakeysthatyouweren'texpecting.
這個時候usera的公鑰文件內容會追加寫入到userb的 .ssh/authorized_keys 文件中
[usera@serverA~]$cat.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEA2dpxfvifkpswsbusPCUWReD/mfTWpDEErHLWAxnixGiXLvHuS9QNavepZoCvpbZWHade88KLPkr5XEv6M5RscHXxmxJ1IE5vBLrrS0NDJf8AjCLQpTDguyerpLybONRFFTqGXAc/ximMbyHeCtI0vnuJlvET0pprj7bqmMXr/2lNlhIfxkZCxgZZQHgqyBQqk/RQweuYAiuMvuiM8Ssk/rdG8hL/n0eXjh9JV8H17od4htNfKv5+zRfbKi5vfsetfFN49Q4xa7SB9o7z6sCvrHjCMW3gbzZGYUPsj0WKQDTW2uN0nH4UgQo7JfyILRVZtwIm7P6YgsI7vma/vRP0aw==usera@serverA
查看serverB服務器userb用戶下的 ~/.ssh/authorized_keys文件,內容是一樣的,此處我就不粘貼圖片了。
[userb@serverB~]$cat.ssh/authorized_keysssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEA2dpxfvifkpswsbusPCUWReD/mfTWpDEErHLWAxnixGiXLvHuS9QNavepZoCvpbZWHade88KLPkr5XEv6M5RscHXxmxJ1IE5vBLrrS0NDJf8AjCLQpTDguyerpLybONRFFTqGXAc/ximMbyHeCtI0vnuJlvET0pprj7bqmMXr/2lNlhIfxkZCxgZZQHgqyBQqk/RQweuYAiuMvuiM8Ssk/rdG8hL/n0eXjh9JV8H17od4htNfKv5+zRfbKi5vfsetfFN49Q4xa7SB9o7z6sCvrHjCMW3gbzZGYUPsj0WKQDTW2uN0nH4UgQo7JfyILRVZtwIm7P6YgsI7vma/vRP0aw==usera@serverA
另外我們要注意,.ssh目錄的權限為700,其下文件authorized_keys和私鑰的權限為600。否則會因為權限問題導致無法免密碼登錄。我們可以看到登陸后會有known_hosts文件生成。
[useb@serverB~]$ls-la.sshtotal24drwx------.2usebuseb4096Jul2716:13.drwx------.35usebuseb4096Aug2409:18..-rw-------1usebuseb796Aug2409:24authorized_keys-rw-------1usebuseb1675Jul2716:09id_rsa-rw-r--r--1usebuseb397Jul2716:09id_rsa.pub-rw-r--r--1usebuseb1183Aug1113:57known_hosts
這樣做完之后我們就可以免密碼登錄了
[usera@serverA~]$sshuserb@10.124.84.20
另外,將公鑰拷貝到服務器的~/.ssh/authorized_keys文件中方法有如下幾種: 1、將公鑰通過scp拷貝到服務器上,然后追加到~/.ssh/authorized_keys文件中,這種方式比較麻煩。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。 2、通過ssh-copy-id程序,就是我演示的方法,ssh-copyid user@host即可 3、可以通過cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,這個也是比較常用的方法,因為可以更改端口號。
SSH協議框架中設計了大量可擴展的冗余能力,比如用戶自定義算法、客戶自定義密鑰規則、高層擴展功能性應用協議。
什么是Linux系統
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
總結
以上是生活随笔為你收集整理的Linux系统中如何设置SSH免密登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京林业大c语言程序设计考试试题,202
- 下一篇: navicat联合主键的设置方法