示例:
A為本地主機(jī)(即用于控制其他主機(jī)的機(jī)器) ;
B為遠(yuǎn)程主機(jī)(即被控制的機(jī)器Server), 假如ip為192.168.60.110;
A和B的系統(tǒng)都是Linux
在A上運(yùn)行命令:
# ssh-keygen -t rsa (連續(xù)三次回車,即在本地生成了公鑰和私鑰,不設(shè)置密碼)
# ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (需要輸入密碼)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (需要輸入密碼)
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已經(jīng)存在這個文件, 跳過這條)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (將id_rsa.pub的內(nèi)容追加到 authorized_keys2 中)
回到A機(jī)器:
# ssh root@192.168.60.110 (不需要密碼, 登錄成功)
如果能保護(hù)好自己的私鑰, 這種方法相對在shell上輸入密碼, 要安全一些
深入學(xué)習(xí)
理解登錄過程
首先 ssh-keygen -t rsa 命令生成了一個密鑰和一個公鑰, 而且密鑰可以設(shè)置自己的密碼,可以把密鑰理解成一把鑰匙, 公鑰理解成這把鑰匙對應(yīng)的鎖頭,把鎖頭(公鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(密鑰)的人, 才能打開鎖頭, 進(jìn)入server并控制,而對于擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設(shè)置密碼), 這樣就可以防止鑰匙被人配了(私鑰被人復(fù)制)。
當(dāng)然, 這種例子只是方便理解罷了,
擁有root密碼的人當(dāng)然是不會被鎖住的, 而且不一定只有一把鎖(公鑰), 但如果任何一把鎖, 被人用其對應(yīng)的鑰匙(私鑰)打開了, server就可以被那個人控制了
所以說, 只要你曾經(jīng)知道server的root密碼, 并將有root身份的公鑰放到上面, 就可以用這個公鑰對應(yīng)的私鑰"打開" server, 再以root的身分登錄, 即使現(xiàn)在root密碼已經(jīng)更改!
如果想控制n個機(jī)器, 那就需要n對鑰匙(密鑰和公鑰), ssh-keygen 命令可以隨意更改鑰匙對的名字, 比如:
[root@wwy .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.102.12
......
這樣私鑰和公鑰的名字分別就是:
id_rsa_192.168.102.12 和 id_rsa_192.168.102.12.pub
然后將 id_rsa_192.168.102.12.pub 文件的內(nèi)容, 追加到sever的 ~/.ssh/authorized_keys2 文件中。
最后, 在本地用ssh命令的 -i 參數(shù)指定本地密鑰, 并登錄:
# ssh -i /root/.ssh/id_rsa_192.168.102.12 192.168.102.12
如果密鑰設(shè)置了密碼, 就用密鑰的密碼登錄, 沒設(shè)密碼, 就直接登錄進(jìn)去了
scp也是一樣的
如:
scp -i /root/.ssh/id_rsa./xxx 192.168.102.158:/home/wwy/bak
您可能感興趣的文章:- 魔獸世界item.scp文件參數(shù)說明
- shell結(jié)合expect寫的批量scp腳本工具
- bash scp command not found的解決方法
- 使用scp獲取遠(yuǎn)程linux服務(wù)器上的文件 linux遠(yuǎn)程拷貝文件
- linux使用scp命令備份文件 scp拷貝文件
- linux拷貝命令之高級拷貝scp命令詳解
- Windwos下使用winscp和批處理實現(xiàn)通過SSH端口上傳文件到Linux服務(wù)器上
- expect實現(xiàn)單臺、多臺服務(wù)器批量scp傳輸文件
- scp命令詳解(全)