講解securecrt使用教程「securitycrt傳文件的方法」

問題

外網伺服器用ssh去連其他linux機器,會等待30-60秒才有提示輸入密碼。嚴重影響工作效率。登錄很慢,登錄上去後速度正常。

linux疑難雜症:為什麼ssh連接伺服器需要很長時間?附優化技巧

找了很久的原因,最後修改了下面兩個參數後重連ssh正常。

1. DNS反向解析的問題

OpenSSH在用戶登錄的時候會驗證IP,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找到IP地址,最後匹配一下登錄的IP是否合法。如果客戶機的IP沒有域名,或者DNS伺服器很慢或不通,那麼登錄就會很花時間。

解決辦法:

在目標伺服器上修改sshd伺服器端配置,並重啟sshd

vi /etc/ssh/sshd_config,設置UseDNS為no即可

當然也可以通過提供DNS正確反向解析的方法解決,有如下兩種思路

(1) 在server上/etc/hosts文件中把常用的ip和hostname加入,然後在/etc/nsswitch.conf看看程序是否先查詢hosts文件(一般預設是這樣)。

修改server上的hosts文件,將目標機器的IP和域名加上去。或者讓本機的DNS 伺服器能解析目標地址。

vi /etc/hosts

xx.xx.xx.xx nwpp

其格式是「目標機器IP 目標機器名稱」這種方法促效。沒有延遲就連上了。不過如果給每台都加一個域名解析,挺辛苦的。但在windows下用putty或secure-crt時可以採用這種方法。

(2)起一台dns伺服器(可以是本機),加入反向解析,把這個dns伺服器加入到/etc/resolv.conf中。

2. 關閉ssh的gssapi認證

用ssh -v user@server 可以看到登錄時有如下信息:

debug1: Next authentication method: gssapi-with-mic

debug1: Unspecified GSS failure. Minor code may provide more information

註:ssh -vvv user@server 可以看到更細的debug信息

解決辦法:

在客戶端上修改ssh客戶端配置(注意不是sshd_conf)

vi /etc/ssh/ssh_config,設置GSSAPIAuthentication no 並重啟sshd

可以使用

ssh -A -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -p 32200 username@server_ip

GSSAPI ( Generic Security Services Application Programming Interface) 是一套類似Kerberos 5 的通用網路安全系統介面。該介面是對各種不同的客戶端伺服器安全機制的封裝,以消除安全介面的不同,降低編程難度。但該介面在目標機器無域名解析時會有問題

使用strace查看後發現,ssh在驗證完key之後,進行authentication gssapi-with-mic,此時先去連接DNS伺服器,在這之後會進行其他操作。


上面的問題不知道大家有沒碰過,反正我是碰了好幾次了,特別是去掉伺服器之間ssh免密來執行腳本,每次都需要很久,用上面方法就可以解決這類問題了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/278011.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-19 13:28
下一篇 2024-12-19 13:28

相關推薦

發表回復

登錄後才能評論