Linux ssh使用技巧

date: 2015.12.05; modification:2018.05.04

目录:

1 ssh登陆慢的问题

1.1 DNS反向解析的问题

OpenSSH在用户登录的时候会验证IP, 它根据用户的IP使用反向DNS找到主机名, 再使用DNS找到IP地址, 最后匹配一下登录的IP是否合法. 如果客户机的IP没有域名, 或者DNS服务器很慢或不通, 那么登录就会很花时间.

解决办法:

在目标服务器上修改sshd服务器端配置, 并重启sshd

vi /etc/ssh/sshd_config, 设置UseDNS为no即可.

1.2 GSSAPIAuthentication问题

vi /etc/ssh/sshd_config, GSSAPIAuthentication 改为 no.

2 使用主机别名ssh登陆

如果嫌每次都敲入ssh -p 23 myuser@www.myhostxxx.com比较麻烦的话, 可以在客户机的~/.ssh/config中加入:

Host myhost
HostName www.myhostxxx.com
User myuser
Port 23

这样, 以后就可以直接用ssh myhost来登陆了.

3 使用ssh反向通道登陆内网机器

见: Ubuntu使用ssh反向通道登陆内网机器

4 避免SSH连接因闲置超时断开

如果有一段时间在SSH连接上无数据传输, 连接就会断开. 解决此问题有两种方法.

4.1 方案一: 在客户端设置

方法很简单, 只需在客户端电脑上编辑/etc/ssh/ssh_config(或者~/.ssh/config), 并添加如下一行:

ServerAliveInterval 60

此后该系统里的用户连接SSH时, 每60秒会发一个KeepAlive请求, 避免被踢.

4.2 方案二: 在服务器端设置

如果有相应的权限, 也可以在服务器端设置, 即编辑/etc/ssh/sshd_config, 并添加:

ClientAliveInterval 60

重启SSH服务器后该项设置会生效. 每一个连接到此服务器上的客户端都会受其影响. 注意: 启用该功能后, 安全性会有一定下降(比如忘记登出时...)

5

6 选项

-1: 强制使用ssh协议版本1;
-2: 强制使用ssh协议版本2;
-4: 强制使用IPv4地址;
-6: 强制使用IPv6地址;
-A: 开启认证代理连接转发功能;
-a: 关闭认证代理连接转发功能;
-b: 使用本机指定地址作为对应连接的源ip地址;
-C: 请求压缩所有数据;
-F: 指定ssh指令的配置文件;
-f: 后台执行ssh指令;
-g: 允许远程主机连接主机的转发端口;
-i: 指定身份文件;
-l: 指定连接远程服务器登录用户名;
-N: 不执行远程指令;
-o: 指定配置选项;
-p: 指定远程服务器上的端口;
-q: 静默模式;
-X: 开启X11转发功能;
-x: 关闭X11转发功能;
-y: 开启信任X11转发功能.

7 参考资料

https://www.cnblogs.com/piperck/p/6200439.html

http://man.linuxde.net/ssh

https://blog.csdn.net/lcathm/article/details/50156285