Linux ssh使用技巧

date: 2015.12.05; modification:2018.07.03

目录:

1 ssh登陆慢的问题

DNS反向解析的问题:

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

解决办法:

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

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

GSSAPIAuthentication问题

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

2 共享连接

如果你需要在多个窗口中打开到同一个服务器的连接, 而不想每次都输入用户名, 密码, 或是等待连接建立, 那么你可以配置SSH的连接共享选项, 在本地打开你的SSH配置文件, 通常它们位于~/.ssh/config, 然后添加下面2行:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r

现在试试断开你与服务器的连接, 并建立一条新连接, 然后打开一个新窗口, 再创建一条连接, 你会发现, 第二条连接几乎是在瞬间就建立好了.

3 使用主机别名ssh登陆

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

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

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

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

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

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

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

5.1 方案一: 在客户端设置

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

ServerAliveInterval 60

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

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

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

ClientAliveInterval 60

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

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 sshd log

在文件:
tail -f /var/log/auth.log

// 失败log:
incorrect password          # 输错密码
authentication failure      # 输错密码
Connection closed by authenticating # 没有添加key

8 参考资料

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

http://man.linuxde.net/ssh

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

Ubuntu 中登录相关的日志: https://www.cnblogs.com/sparkdev/p/7694202.html

Linux服务器限制ssh登录, 查看登录日志: https://blog.csdn.net/sasoritattoo/article/details/9319769

阿里云主机 /var/log/auth.log文件不存在问题的解决: http://nferzhuang.com/varlogauth-log%E6%96%87%E4%BB%B6%E4%B8%8D%E5%AD%98%E5%9C%A8/