標籤:des style http io ar color os 使用 sp
在linux系統中,ssh是遠程登入的預設工具,因為該工具的協議使用了RSA/DSA的密碼編譯演算法.該工具做linux系統的遠端管理是非常安全的。telnet,因為其不安全性,在linux系統中被擱置使用了。
" 公私密金鑰"認證方式簡單的解釋:首先在用戶端上建立一對公私密金鑰 (公開金鑰檔案:~/.ssh/id_rsa.pub; 私密金鑰檔案:~/.ssh/id_rsa)。然後把公開金鑰放到伺服器上(~/.ssh/authorized_keys), 自己保留好私密金鑰.在使用ssh登入時,ssh程式會發送私密金鑰去和伺服器上的公開金鑰做匹配.如果匹配成功就可以登入了。
在Ubuntu和Cygwin 配置都很順利,而在Centos系統中配置時遇到了很多問題。故此文以Centos(Centos5 ) 為例詳細講解如何配置認證驗證登陸,具體操作步驟如下:
確認系統已經安裝好OpenSSH的server 和client確認本機sshd的設定檔(root)
$ vi /etc/ssh/sshd_config
找到以下內容,並去掉注釋符"#"
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如果修改了設定檔需要重啟sshd服務(root)
$ vi /sbin/service sshd restart
ssh登陸系統 後執行測試命令
$ ssh localhost
斷行符號會提示你輸入密碼,因為此時我們還沒有產生認證。
2.7 產生認證公私密金鑰的步驟
$ ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2.8 測試登陸 ssh localhost
$ ssh localhost
正常情況下會登陸成功,顯示一些成功登陸資訊,如果失敗請看下面的"一般調試步驟"。
2.9 一般調試步驟
本人在配置時就失敗了,按照以上步驟依舊提示要輸入密碼。於是用ssh -v 顯示詳細的登陸資訊尋找原因:
$ ssh -v localhost
斷行符號顯示了詳細的登陸資訊如下:
。。。。。。省略
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Next authentication method: publickey
debug1: Trying private key: /home/huaxia/.ssh/identity
debug1: Trying private key: /home/huaxia/.ssh/id_rsa
debug1: Offering public key: /home/huaxia/.ssh/id_dsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: password
[email protected]‘s password:
同時用root使用者登陸查看系統的記錄檔:
$tail /var/log/secure -n 20
。。。。。。省略
Jul 13 11:21:05 shnap sshd[3955]: Accepted password for huaxia from 192.168.8.253 port 51837 ssh2
Jul 13 11:21:05 shnap sshd[3955]: pam_unix(sshd:session): session opened for user huaxia by (uid=0)
Jul 13 11:21:47 shnap sshd[4024]: Connection closed by 127.0.0.1
Jul 13 11:25:28 shnap sshd[4150]: Authentication refused: bad ownership or modes for file /home/huaxia/.ssh/authorized_keys
Jul 13 11:25:28 shnap sshd[4150]: Authentication refused: bad ownership or modes for file /home/huaxia/.ssh/authorized_keys
Jul 13 11:26:30 shnap sshd[4151]: Connection closed by 127.0.0.1
。。。。。。省略
從上面的日誌資訊中可知檔案/home/huaxia/.ssh/authorized_keys 的許可權有問題。
查看/home/huaxia/.ssh/ 下檔案的詳細資料如下:
$ ls -lh ~/.ssh/
總計 16K
-rw-rw-r-- 1 huaxia huaxia 602 07-13 11:22 authorized_keys
-rw------- 1 huaxia huaxia 672 07-13 11:22 id_dsa
-rw-r--r-- 1 huaxia huaxia 602 07-13 11:22 id_dsa.pub
-rw-r--r-- 1 huaxia huaxia 391 07-13 11:21 known_hosts
修改檔案authorized_keys的許可權(許可權的設定非常重要,因為不安全的設定安全設定,會讓你不能使用RSA功能 ):
$ chmod 600 ~/.ssh/authorized_keys
再次測試登陸如下:
$ ssh localhost
Last login: Wed Jul 13 14:04:06 2011 from 192.168.8.253
看到這樣的資訊表示已經成功實現了原生無密碼登陸。
2.10 認證登陸遠程伺服器
備忘:遠程伺服器OpenSSH的服務當然要啟動。
拷貝本地生產的key到遠程伺服器端(兩種方法)
1)方法一:
$cat ~/.ssh/id_rsa.pub | ssh 遠端使用者名@遠程伺服器ip ‘cat - >> ~/.ssh/authorized_keys‘
2)方法二:
在本機上執行:
$ scp ~/.ssh/id_dsa.pub [email protected]:/home/michael/
登陸遠程伺服器[email protected] 後執行:
$ cat id_dsa.pub >> ~/.ssh/authorized_keys
本機遠程登陸192.168.8.148的測試:
$ssh [email protected]
Linux michael-VirtualBox 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
Ubuntu 10.10
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
216 packages can be updated.
71 updates are security updates.
New release ‘natty‘ available.
Run ‘do-release-upgrade‘ to upgrade to it.
Last login: Wed Jul 13 14:46:37 2011 from michael-virtualbox
[email protected]:~$
可見已經成功登陸。
如果登陸測試不成功,需要修改遠程伺服器192.168.8.148上的檔案authorized_keys的許可權(許可權的設定非常重要,因為不安全的設定安全設定,會讓你不能使用RSA功能 )
chmod 600 ~/.ssh/authorized_keys
重點來了,本次配置出現過多個問題,首先是authorized_keys內容錯誤,主要還是粗心問題
然後就是許可權問題了,必須按照這樣要求 :
.ssh上級目錄hadoop/的許可權素要是700
drwx------. 32 hadoop hadoop 4096 11月 29 16:22 hadoop
.ssh也是700
drwx------. 2 hadoop hadoop 4096 11月 29 16:19 .ssh
authorized_keys的許可權需要是644
-rw-r--r--. 1 hadoop hadoop 610 11月 29 16:09 authorized_keys
centos ssh 無密碼登入