linux
下,要想
scp自動輸入遠端伺服器的密碼來拷貝檔案,一般借助
expect
指令碼來達到目的。兩台伺服器之間互信是指,用
scp拷貝檔案、
ssh登陸、
rsync
同步檔案等操作的時候,不需要輸入遠端伺服器的使用者密碼就可以完成操作。
以下在suse 10.1
上,來說明如何建立兩台伺服器的通訊互信機制。使用
root
使用者,192.168.0.170
若要無密碼
ssh登陸
192.168.0.147
機器: 1.在
170上生成認證
rsa金鑰:
ssh-keygen -b 1024 -t rsa
中間過程直接回車。在
/root/.ssh2/
目錄下,生成了兩個檔案:
id_rsa_1024_a
(私鑰檔案放在本地)
和id_rsa_1024_a.pub
(公鑰檔案放在信任伺服器)
為了方便管理,將它們重新命名:
mv id_rsa_1024_a root_192.168.0.170
mv id_rsa_1024_a.pub root_192.168.0.170.pub
2.170
上,在/root/.ssh2/
下,私鑰驗證檔案
identification
中追加(
cat >> identification):
idkey root_192.168.0.170
3.將公鑰檔案拷貝到
147上:
scp root_192.168.0.170.pub [email protected]:/root/.ssh2
4.root
使用者登陸
147,在
/root/.ssh2/
下,公鑰驗證檔案
authorization
中追加(
cat >> authorization):
key root_192.168.0.170.pub
這樣147
上root
使用者就信任了來自
170的
root
使用者通訊。在
170,往
147上
scp、
ssh、
rsync
都是免密碼了。
延伸閱讀:公鑰認證的基本的思想(來自網際網路)
公鑰認證的基本的思想:對資訊的加密和解密採用不同的
key,這對
key分別稱作
private key
和public key
,其中,
publickey
存放在欲登入的伺服器上,而
private key
為特定的客戶機所持有。當客戶機向伺服器發出建立安全連線的請求時,首先傳送自己的
public key
,如果這個
public key
是被伺服器所允許的,伺服器就傳送乙個經過
public key
加密的隨機資料給客戶機,這個資料只能通過
private key
解密,客戶機將解密後的資訊發還給伺服器,伺服器驗證正確後即確認客戶機是可信任的,從而建立起一條安全的資訊通道。通過這種方式,客戶機不需要向
外傳送自己的身份標誌
「private key」
即可達到校驗的目的,並且
private key
是不能通過
public key
反向推斷出來的。這避免了網路竊聽可能造成的密碼洩露。客戶機需要小心的儲存自己的
private key
,以免被其他人竊取,一旦這樣的事情發生,就需要各伺服器更換受信的
public key
列表。
louieli@ubuntu:~$ ssh-keygen
-t rsa
louieli@ubuntu:~$ ssh-copy-id -i /root/.ssh/id_rsa [email protected]
Linux之間配置SSH互信(SSH免密碼登入)
1.在客戶端生成公鑰私鑰對 命令 ssh keygen t rsa 一路預設回車,系統在 root ssh下生成id rsa id rsa.pub 2.檢視系統生成的公鑰私鑰對 命令 ls root ssh 可以看到如下的檔案 3.將生成的公鑰私鑰對id rsa.pub傳送到其他的伺服器上。命令 s...
Linux之間配置SSH互信(SSH免密碼登入)
為簡化ssh過程,採用證書方式,免去ssh登入時需要輸入賬號密碼的過程,具體操作如下 一 在ssh伺服器所在機器上 1 以root使用者登入,更改ssh配置檔案 etc ssh sshd config,去除以下配置的注釋 rsaauthentication yes 啟用rsa認證 pubkeyaut...
Linux之間配置SSH互信(SSH免密碼登入)
為簡化ssh過程,採用證書方式,免去ssh登入時需要輸入賬號密碼的過程,具體操作如下 一 在ssh伺服器所在機器上 1 以root使用者登入,更改ssh配置檔案 etc ssh sshd config,去除以下配置的注釋 rsaauthentication yes 啟用rsa認證 pubkeyaut...