熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 嵌入式開發 >> 正文

ssh,scp自動登陸的實現方法

2022-06-13   來源: 嵌入式開發 

  示例
A為本地主機(即用於控制其他主機的機器) ;
B為遠程主機(即被控制的機器Server) 假如ip為;
A和B的系統都是Linux

  在A上運行命令:
# sshkeygen t rsa (連續三次回車即在本地生成了公鑰和私鑰不設置密碼)
# ssh root@  mkdir ssh; chmod ssh (需要輸入密碼)
# scp ~/ssh/id_rsapub  root@:ssh/id_rsapub (需要輸入密碼)

  在B上的命令:
# touch /root/ssh/authorized_keys (如果已經存在這個文件 跳過這條)
# cat /root/ssh/id_rsapub  >> /root/ssh/authorized_keys (將id_rsapub的內容追加到 authorized_keys 中)

  回到A機器:
# ssh root@ (不需要密碼 登錄成功)

  如果能保護好自己的私鑰 這種方法相對在shell上輸入密碼 要安全一些

  深入學習

  理解登錄過程
首先 sshkeygen t rsa 命令生成了一個密鑰和一個公鑰 而且密鑰可以設置自己的密碼可以把密鑰理解成一把鑰匙 公鑰理解成這把鑰匙對應的鎖頭把鎖頭(公鑰)放到想要控制的server上 鎖住server 只有擁有鑰匙(密鑰)的人 才能打開鎖頭 進入server並控制而對於擁有這把鑰匙的人 必需得知道鑰匙本身的密碼才能使用這把鑰匙 (除非這把鑰匙沒設置密碼) 這樣就可以防止鑰匙被人配了(私鑰被人復制)

  當然 這種例子只是方便理解罷了
擁有root密碼的人當然是不會被鎖住的 而且不一定只有一把鎖(公鑰) 但如果任何一把鎖 被人用其對應的鑰匙(私鑰)打開了 server就可以被那個人控制了
所以說 只要你曾經知道server的root密碼 並將有root身份的公鑰放到上面 就可以用這個公鑰對應的私鑰打開 server 再以root的身分登錄 即使現在root密碼已經更改!

  如果想控制n個機器 那就需要n對鑰匙(密鑰和公鑰) sshkeygen 命令可以隨意更改鑰匙對的名字 比如:
[root@wwy ssh]# sshkeygen t rsa
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): /root/ssh/id_rsa_

  這樣私鑰和公鑰的名字分別就是:
id_rsa_ 和 id_rsa_pub
然後將 id_rsa_pub 文件的內容 追加到sever的 ~/ssh/authorized_keys 文件中

  最後 在本地用ssh命令的 i 參數指定本地密鑰 並登錄:
# ssh i /root/ssh/id_rsa_ 

  如果密鑰設置了密碼 就用密鑰的密碼登錄 沒設密碼 就直接登錄進去了

  scp也是一樣的

scp -i /root/ssh/id_rsa/xxx  :/home/wwy/bak


From:http://tw.wingwit.com/Article/program/qrs/201401/30217.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.