兩臺linux服務器之間用RSA鍵對的方法SSH/SCP不需密
兩臺linux服務器A和B
都編譯安裝上最新版的openSSH(建議)
openSSH的默認設置是允許root可以直接login.(PermitRootLoginyes),暫且保留這種設置,我們先考慮如何
用SSH直接從A到B不需要密碼,假設用用戶root登錄到A,想SSH到B也作為root不需要密碼。
1。分別從A和B上登錄作為root后運行ssh-keygen,目的是簡單地在/root下創建目錄.ssh,當提示輸入
passphase時打入兩次回車。這將生成/root/.ssh/identityand/root/.ssh/identity.pub
2。先測試一下,從A登錄作為root,打入#sshB,會要求提示rootpassword。
3。現在從A登錄作為root,運行scp/root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
文件名必須不能弄錯。
4。現在再從A運行#sshB則不需要密碼了:)
基本原理:
1。如果你希望從A作為用戶user1SSH到B作為用戶user2,若要用RSA鍵對法認證且不需要密碼,則B上的ssh
后臺程序拿出~user2/.ssh/authorized_keys中的與A有關的RSA公鑰來對A上的以user1身份運行的ssh客戶程序
進行挑戰,前面我們已經把A上的identity.pub拷貝到B上作為authorized_keys了。則A保持私鑰identity,而B
上的sshd又拿出A的公鑰來挑戰,因此成功,你可以加很多行到authorized_keys以允許其它服務器的公鑰可以加
進來。
常見應用舉例:
1。在A上以用戶rootSSH到B上作為普通用戶user而不是root,因為為了安全,有時不需要作為root,只需要作
為普通用戶不需要密碼以完成相應工作即可。
登錄作為root在A上
A#scp/root/.ssh/identity.pubuser@B:/home/user/.ssh/authorized_keys
2.tar一批文件從A到B。
A#tarcvf-/etc|(sshBtarxvf-)
3.運行A上的cronjob,對某文件作改動后傳到B
01***cat/etc/shadow|awk-F:{print$1":"$2}|(sshBcat>/home/passwd)
常見問題:
1。這種方式的SSH需要B上的sshd_config中允許直接的rootlogin(PermitRootLoginyes).
2.我有服務器A和其它服務器B,C,D。我想從ASSH到這些服務器但不要自動,最好輸入RSApassphase,但太
麻煩,怎么辦?
a.要A上運行ssh-keygen時輸入passphase字。
b.要登錄到A上后運行A#ssh-agentbash
c.再運行ssh-add加passphase進入內存
d.再運行sshBorSSHCorSSHD,則不再需要密碼,密碼對只需輸一次
e.最后退出shell前輸入ssh-agent-k。
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解