SSH
什麼是SSH(Secure Shell)
一種專為遠程登錄會話和其他網絡服務提供安全性的協議。
通俗的說法就是:一台機器(client)需要訪問另一台機器(server),如何實現免密碼訪問呢?那麼就可以使用SSH協議啦。
使用方法
服務器(server,被訪問方)和客戶端(client,訪問方)均可作為產生公、私鑰的機器,但客戶端須存放私鑰。一般情況下,在客戶端產生一對公、私鑰。
(例子中使用的是從一台機器的root用戶訪問francis用戶,模擬的是client訪問server,原理相同)
例:從client訪問server,client端用戶是root,server端用戶是francis,那麼可以先在client端/root/.ssh目錄下使用密鑰生成命令
ssh_keygen
,然後將公鑰拷貝到server端對應用戶名
/home/francis/.ssh/authorized_keys
下,(使用服務器端哪個用戶名登錄就將公鑰拷貝到該用戶名下的/.ssh/authorized_keys內)。
這樣操作完成之後,就可以在client端使用ssh username@ip命令登錄到server端。
ssh francis@192.168.222.128
完整命令
以在client端生成公、私鑰為例
# 在當前用戶目錄下產生一對公、私鑰
ssh_keygen
# 將公鑰拷貝至server端
cp id_rsa.pub /home/francis/.ssh/authorized_keys
# 以server端用戶francis身份通過SSH免密登錄server
ssh francis@192.168.222.128
注意
1、當authorized_keys 中存有多個公鑰時,後續的公鑰將以追加至其末尾方式添加,命令為:cat id_rsa.pub >> authorized_keys。
2、不可隨意更改公私鑰的權限,默認是600,更改之後將會報錯,如下方所示。
# 修改權限
chmod 644 id_rsa
# 訪問出錯
ssh francis@192.168.222.128
# 改回權限
chmod 600 id_rsa
3、退出遠程訪問時使用exit命令
4、client和server並非是固定不變的,隨著訪問和被訪問的關係轉變,它們的角色也將發生變化,這時就需要在server端(francis)生成公私鑰,然後將公鑰拷貝到root端authorized_keys。
cp /home/francis/.ssh/id_rsa.pub /root/.ssh/authorized_keys
最後更新:2017-06-23 23:36:02