ubuntu下openssh的安裝:
sudo apt-get install openssh-server
一、問題描述
假設 a 為客戶機器,b為目標機;
要達到的目的:
a機器ssh登入b機器無需輸入密碼;
加密方式選 rsa|dsa均可以,預設dsa
二、具體操作流程
單向登陸的操作過程(能滿足上邊的目的):
1、登入a機器
2、ssh-keygen -t [rsa|dsa],將會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 檔案複製到b機器的 .ssh 目錄, 並 cat id_dsa.pub > ~/.ssh/authorized_keys
4、大功告成,從a機器登入b機器的目標賬戶,不再需要密碼了;(直接執行#ssh 192.168.20.60)
雙向登陸的操作過程:
1、ssh-keygen做密碼驗證可以使在向對方機器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個節點都執行操作:#ssh-keygen -t rsa
然後全部回車,採用預設值.
3、這樣生成了一對金鑰,存放在使用者目錄的~/.ssh下。
將公鑰考到對方機器的使用者目錄下,並將其複製到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。
4、設定檔案和目錄許可權:
設定authorized_keys許可權
$ chmod 600 authorized_keys
設定.ssh目錄許可權
$ chmod 700 -r .ssh
5、要保證.ssh和authorized_keys都只有使用者自己有寫許可權。否則驗證無效。(今天就是遇到這個問題,找了好久問題所在),其實仔細想想,這樣做是為了不會出現系統漏洞。
我從20.60去訪問20.59的時候會提示如下錯誤:
the authenticity of host '192.168.20.59 (192.168.20.59)' can't be established.
rsa key fingerprint is 6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '192.168.20.59' (rsa) to the list of known hosts.
[email protected]'s password:
permission denied, please try again.
[email protected]'s password:
permission denied, please try again.
[email protected]'s password:
permission denied (publickey,gssapi-with-mic,password).
三、總結
1、檔案和目錄的許可權千萬別設定成chmod 777.這個許可權太大了,不安全,數字簽名也不支援。
2、生成的rsa/dsa簽名的公鑰是給對方機器使用的,這個公鑰內容還要拷貝到authorized_keys
3、linux之間的訪問直接 ssh 機器ip
4、某個機器生成自己的rsa或者dsa的數字簽名,將公鑰給目標機器,然後目標機器接收後設定相關許可權(公鑰和authorized_keys許可權),這個目標機就能被訪問了!
openssh無密碼訪問
openssh可以實現客戶端無密碼訪問服務端。操作過程如下 客戶端和服務端系統都是ubuntu10.04.2,使用者名稱都是bianhaoqiong,都安裝了openssh。伺服器端位址是192.168.0.100,客戶端的位址是192.168.0.101 客戶端配置 用bianhaoqiong登陸...
linux配置ssh無密碼訪問
由於看了網上的教程太亂,特意整理簡潔實用的教程,兩台機器a和b,現要通過a ssh無密碼訪問b 1.首先登入a,執行命令 ssh keygen t rsa 或者 ssh keygen t rsa p 然後一路回車即可,會在 ssh目錄下生成 id rsa和id rsa.pub兩個檔案,id rsa為...
centos配置ssh無密碼訪問
在linux上部署hadoop或者其它需要遠端訪問呼叫的程式,需要配置ssh無密碼訪問。centos一般都裝有sshclient和sshserver,乙個是服務端接收ssh協議訊息,乙個是客戶端給sshserver傳送shell命令。常用的命令ssh scp等命令都是sshclient中的工具。所以...