标签 ssh 下的文章

自从使用mac以后,ssh连接总是超时成了老高的一个心病啊,只要一小会儿不动电脑,远程就失去相应,或者干脆直接提示broken pipe,然后断掉。现在终于有了算是能接受的解决办法。

方法一:直截了当砍掉法

~.,是的,你没有看错!这个组合命令就是主动断开ssh的命令,不行自己问问man。

方法二:修改配置文件

服务器和客户端每隔一定的时间会发一个KeepAlive请求,避免因为路由器或线路的限制而断线,例子中的60s可以因具体的环境改变。

针对服务器端

修改/etc/ssh/sshd_config,修改ServerAliveInterval一项,而ServerAliveCountMax表示如果失败重试的次数

ServerAliveInterval 60
ServerAliveCountMax 3

针对客户端

vi /etc/ssh_config
ClientAliveInterval 60
ClientAliveCountMax 3

步骤一 关闭ssh的gssapi认证

vi /etc/ssh/ssh_config

注释掉如下两行

GSSAPIAuthentication yes 
GSSAPIDelegateCredentials no 

步骤二 关闭ssh的UseDNS

vi /etc/ssh/sshd_config 

注:ubuntu的sshd_config文件没有UseDNS参数,而据我了解,其它类*NIX、*BSD操作系统的sshd_config都有UseDNS参数,且它们缺省都是"UseDNS yes",那估计ubuntu的sshd_config虽然没有UseDNS,那它缺省也是"UseDNS yes"了

于是,在sshd_config末尾处插入如下行

UseDNS no 

然后执行指令"/etc/init.d/ssh restart",重启ssh服务,配置生效

经测试,使用此方法后,ubuntu的认证时间大大缩短,原来其登录认证一般耗时在10秒以上15秒左右,有些时候甚至达到20多秒到30秒左右,而经过此修改,ubuntu的登录认证时间将会缩短在3秒以内。

安装完Ubuntu后自然需要使用ssh远程管理,但是sudo apt-get install openssh-server后虽然安装成功,但是总是提示

Unknown job: ssh 百度之,未解决 google之,

运行

sudo /usr/sbin/sshd

提示

Missing privilege separation directory: /var/run/sshd (缺少权限分离目录)

然后运行

sudo mkdir /var/run/sshd
sudo /usr/sbin/sshd
netstat -nlt

应该能看到22端口已经启用!