一、概述

ssh和sshd作为众多发行版Linux中内置的工具,并且在日常运维中也起到非常大的作用。

二、ssh和sshd的介绍

1、ssh客户端命令

ssh客户端作为一个非常常用的客户端命令,它的功能也是非常丰富和强大,这里仅介绍几个常用的参数,更多参数用法可以参考man帮助。 主要的使用格式:ssh [user@]host [COMMAND]

-p port:远程服务器监听的端口
-b 指定连接的源IP
-v 调试模式
-C 压缩方式
-X 支持x11转发
-t 强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2 ssh
remoteserver3  这个可以实现多跳中的逐级登陆,最后达到可以登录最后一个服务器的目的
-o option 如:-o StrictHostKeyChecking=no
-i <file> 指定私钥文件路径,实现基于key验证,默认使用文件: ~/.ssh/id_dsa,
~/.ssh/id_ecdsa, ~/.ssh/id_ed25519,~/.ssh/id_rsa等

ssh在登陆过程中分为免密登陆和密码登陆,其中密码登陆需要经过以下几个步骤:他们整个交互过程都需要对于公私钥加解密来完成数据的传递。 image.png 而免密登陆就少了用户登陆输入密码,而是通过系统生成随机数字来确定是否可以成功验证。 image.png

除了ssh的本身的命令,还有基于ssh扩展的命令就是scp,这个命令在平时复制文件时非常有用。 命令使用格式:scp [options] SRC... DEST/ 主要有下面几个常用选项

-C 压缩数据流
-r 递归复制
-p 保持原文件的属性信息
-q 静默模式
-P PORT 指明remote host的监听的端口

2、sshd服务的参数

sshd的配置文件: /etc/ssh/sshd_config 服务器端的配置文件帮助:man 5 sshd_config

  • sshd_config文件配置重要配置参数
Port
ListenAddress IP   # 设置绑定的ip地址
LoginGraceTime 2m  #设定登陆超时时间
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes #检查.ssh/文件的所有者,权限等
MaxAuthTries 6 #最大尝试次数
MaxSessions 10 #同一个连接最大会话
PubkeyAuthentication yes #基于key验证
PermitEmptyPasswords no #空密码连接
PasswordAuthentication yes #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #可以关闭DNS反解析,提升登陆速度
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:
AllowUsers user1 user2 user3
DenyUsers
AllowGroups
DenyGroups

三、总结

ssh和sshd作为非常重要的管理工具,还是需要不断使用过程中熟练。