閱讀1003 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go  phpcms v9 各種注入漏洞補丁
  下一篇:go  視頻直播Android推流SDK初體驗