SSH

客户端:ssh
SSH不指定用户,默认使用root账号

存放基于key验证的公钥:~/.ssh/authorized_keys
存放连接过的主机和密钥:~/.ssh/known_hosts
客户端配置文件:/etc/ssh/ssh_config
    StrictHostKeyChecking no 首次登录不显示检查提示



服务器端:sshd
日志文件:/var/log/secure
配置文件:/etc/ssh/sshd_config
常用参数:
Port                端口号
ListenAddress ip        设置只能访问的ip地址
LoginGraceTime 2m        限制用户必须在指定的时限内认证成功
PermitRootLogin yes        是否允许 root 登录
StrictModes yes            检查.ssh/文件的所有者,权限等
MaxAuthTries 6            指定每个连接最大允许的认证次数
MaxSessions 10            同一个连接最大会话
PubkeyAuthentication yes    是否允许公钥认证
PermitEmptyPasswords no        是否允许密码为空的用户远程登录
PasswordAuthentication yes    是否允许使用基于密码的认证
ClientAliveInterval 60        客户端超时时长
ClientAliveCountMax 3        客户端超时时长次数
UseDNS no            是否应该对远程主机名进行反向解析
Banner                客户端连接时提示信息
AllowUsers user1 user2        白名单
DenyUsers user1 user2        黑名单,优先级高


ssh [user@]IP[`COMMAND`]    
    [-l user]IP[`COMMAND`]  
    -p #    指定服务器端口
    -b    指定连接的源IP
    -v    显示连接过程
    -C    压缩方式
    -X    支持图形
    -t    强制伪tty分配    ssh -t 堡垒机IP ssh 内部机器IP

ssh-keygen -p    重设对称口令
       -t    指定密钥类型
       -f     指定密钥文件存储文件名



实现基于key验证:
1、客户端生成非对称密钥
ssh-keygen -t rsa
2、复制公钥到服务器端
ssh-copy-id 192.168.30.7



三台主机实现key验证:
A:ssh-keygen -t rsa
  ssh-copy-id A
  scp -rp /root/.ssh B:/root/
  scp -rp /root/.ssh C:/root/

SecureCRT或Xshell实现基于key验证:
在SecureCRT工具--->创建公钥--->生成Identity.pub文件
在Xshell工具--->新建用户生成向导--->生成id_rsa_2048.pub文件
转化为openssl兼容格式(Xshell不需要转化格式),并复制到需要登录主机上相应文件authorized_keys中,注意权限必须要600,
在需要登录的ssh主机上执行:ssh -keygen -i -f Identity.pub >> .ssh/authorized_keys



使用代理程序保存解密后的密钥:
1、启用口令代理
ssh-agent bash
2、钥匙通过命令添加给代理
ssh-add



SSH端口转发(隧道)
                       ||
192.169.10.10(外网主机)------>    ||内网[[192.168.10.12(中间服务器)-------192.168.10.11(目标主机)]]
                       ||
本地转发:
ssh -L 外网主机端口(自定义):目标主机IP:目标主机端口 中间服务器IP
选项:
-f    后台启用
-N    不打开远程shell,处于等待状态
-g    启用网关功能
示例:
外网主机使用Telnet连接内网服务器
1、建立隧道
ssh -L 9527:192.168.10.11:23 -N 192.168.10.12
2、使用Telnet连接
telnet 127.0.0.1 9527


远程转发:
ssh -R 中间服务器端口:目标主机IP:目标主机端口 外网主机IP
示例:
通过中间服务器建立外内网桥梁
1、ssh -R 9527:192.168.10.11:23 -N 192.168.10.10


动态转发(翻墙):
当用Firefox访问Internet时,本机的1080端口做为代理服务器,Firefox的访问请求被转发到sshserver上,由sshserver替之访问Internet
ssh -D 1080 root@sshserver
在本机Firefox设置代理socket proxy:127.0.0.1:1080
curl --socks5 127.0.0.1:1080 http://www.google.com



实验1:向多台服务器推送公钥
#/bin/bash
rpm -q expect &> /dev/null || yum install expect -y    ### 检查是否安装expect
ssh-keygen -P "" -f "/root/.ssh/id_rsa"            ### 创建密钥对
password=centos                        ### 设置password变量
while read ipaddr;do                    ### while循环
expect <<EOF
set timeout 10                        
spawn ssh-copy-id $ipaddr                ### 发送公钥到服务器端
expect {                        ### 捕抓关键字
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
expect eof
EOF
done < ip.txt                        ### 输入ip文件中的地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金牌收租佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值