勤有功
戏无益

ssh学习笔记

ssh常用工具: 

PuTTY、Xshell、SecureCRT、Plink、WinScp

在Linux操作系统中,SSH服务端配置文件默认路径为
/etc/ssh/sshd_config
常用配置说明
Port 22                                        #SSH端口设置,这里默认使用的是22端口
Protocol 2,1                             #选择SSH协议版本
ListenAddress 0.0.0.0             #监听的网卡IP
PermitRootLogin no                 #是否允许root登入,默认是允许的
PasswordAuthentication yes  #是否开启密码验证

PermitEmptyPasswords no     #是否允许密码为空
PrintMotd no                             #登入后是否显示一些信息,如上次登入时间及地点等。
PrintLastLog yes                      #显示上次登入的信息
KeepAlive yes                           #发送KeepAlive信息给客户端
MaxStartups 10                       #允许尚未登入的联机画面数
DenyUsers *                             #禁止用户登录,*表示所有用户
AllowUsers *                            #允许用户登录

密钥认证
生成密钥与公钥文件
ssh-keygen 命令可以生成公钥与密钥
将公钥文件加入主机的认证文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys
注意.ssh目录权限为700,authorized_keys文件为600

SSH的认证方式与访问策略

基于用户的访问策略需要在SSH服务的配置文件中进行配置
/etc/ssh/sshd_config
DenyUsers test #禁止test用户登入
AllowUsers test #允许test用户登入
DenyGroups test #禁止test群组登入
AllowUsers test #允许test群组登入

基于IP地址的访问策略有两种方式实现:
iptables防火墙
iptables -A INPUT -p tcp –dport 22 -s  192.168.0.10/32 -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j   DROP

TCP Wrappers
/etc/hosts.allow
sshd:192.168.0.10/255.255.255.255
/etc/hosts.deny
sshd:ALL 或 sshd:ALL EXCEPT 192.168.0.10
TCP Wrappers只支持长格式掩码,不能用192.168.0.0/24

 

SSH执行远程主机命令

获取远程主机当前系统时间,并以“主机名: 时间”的格式保存在本地remote.txt文件中。
SSH执行远程主机命令的格式
ssh username@hostname ‘command’
对应格式编写示例:
ssh username@hostname ‘echo ${HOSTNAME}: `date +%Y-%m-%d\ %H:%M:%S`’ >> remote.txt

SSH构建跳板隧道

hostA可直接访问,hostB只允许hostA访问,用过SSH构建本地到B的连接通道。
命令格式:
ssh –t hostA ssh hostB
示例:
ssh –t 192.168.1.10 ssh 10.0.0.10
首先与192.168.1.10建立SSH连接,并通过此连接10.0.010建立SSH连接。

SSH指定密钥路径、端口、用户及配置文件

-i 指定密钥路径
-p 指定SSH端口
-l 指定用户
-F 指定配置文件
-t 指定为终端迫使SSH客户端以交互模式工作,常配合expect使用
示例:ssh -l test 192.168.1.10 -i ~/mykey –p 2015 –F ~/myconfig
以test用户连接192.168.1.10主机 使用当前用户家目录下mykey文件作为密钥文件 指定访问远程主机的2015端口 并使用myconfig作为本地ssh客户端设置。

 

打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址