1、在腳本中使用ssh命令,報如下錯誤:
ssh: Could notresolve hostname T02-OSD101: Name or service not known
lost connection
但是,在shell下使用ssh 到同一主機名,卻沒有報錯;原因是什麼?
使用telnet連接該機器,被拒絕了:
huangjun:/bsdocfs/shell-script#telnet 192.168.0.11
Trying192.168.0.11...
telnet: Unable toconnect to remote host: Connection refused
有可能是11機器的telnet服務沒有開,那麼ssh出現相同的提示,說明ssh服務沒有開啓?
該機器能ssh別的機器,但是ssh本機都會出現connection refused的提示
重新安裝ssh,可以從遠程登錄了;但腳本仍然出現問題。
Scp $conf$host:$conf需要輸入密碼,而遠程執行命令導致無法輸入密碼,從而提示permission denied。
2、如何不要密碼就能ssh登錄到遠程機器?
ssh-keygen –t rsa
生成isa_pub
將id_rsa.pub文件的內容複製到遠程主機,這樣遠程主機就不需要輸入密碼即可訪問你的機器;
$ cat~/.ssh/id_rsa.pub | ssh huangjun@CodeMake 'cat >> .ssh/authorized_keys'
$ ssh-copy-idhuangjun@CodeMake
$ sshhuangjun@CodeMake
現在應該可以登錄,不使用密碼
若仍然不成功:
可能是CodeMake主機上huangjun用戶的.ssh目錄的權限錯誤
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
(在我的例子中,不能免登陸,因爲~/.ssh/authorized_keys文件的權限不是600;原因:authorized_keys文件權限若是group和other有w權限,遠程登錄必定需要輸入密碼;默認權限是644)
~/.ssh/authorized_keys中記錄的是允許登錄本機的用戶以及ip
3、ssh很慢
http://www.preshweb.co.uk/2011/03/slow-ssh-connections-hanging-at-gssapi-auth/
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/416264
現象描述:
主機192.168.6.60 lab660
主機 192.168.6.61 lab661
從lab660ssh到lab661耗時很長
A、 在/etc/hosts中去掉lab661的記錄後,訪問很快
根據ssh –v lab661提供的調試信息
發現在進行SGG-API(kerberos認證)很慢,比正常的慢得多,失敗後轉向公鑰認證,就是輸入密碼的方式
解決方法:在/root/.ssh/config中加入GSSAPIAuthentication no後訪問正常