一、概述
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在登陆过程中分为免密登陆和密码登陆,其中密码登陆需要经过以下几个步骤:他们整个交互过程都需要对于公私钥加解密来完成数据的传递。
而免密登陆就少了用户登陆输入密码,而是通过系统生成随机数字来确定是否可以成功验证。
除了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作为非常重要的管理工具,还是需要不断使用过程中熟练。