ssh配置记录

#安装
1、先安装telnet,避免安装ssh出错后无法连接
yum install telnet-server -y
systemctl start telnet.socket
netstat -lnt|grep 23 检查telnet端口是否正常打开
如果telnet无法登录 vim /etc/securetty 最后一行添加pts/1
2、确保telnet能够正常登录后,卸载ssh
备份原有ssh配置文件,然后卸载系统预装的ssh
cp /etc/ssh/sshd_config{,.bak}
yum remove openssh -y
3、源码安装ssh
tar zxvf openssh-8.7p1.tar.gz
cd openssh-8.7p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr --with-pam(pam可选项)
报错miss zlib执行yum install zlib-devel -y
make -j 4 && make install
备注:
–prefix=当前ssh安装目录
–sysconfdir=配置文件目录
–with-ssl-dir=openssl安装目录
–with-pam 启用pam
4、添加启动文件
cd contrib/redhat/
cp sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
启用pam则将sshd.pam 复制到/etc/pam.d/
如不能登录则设置
setenforce 0 临时关闭
修改 SELINUX=disabled
sed -i ‘s/^SELINUX=.*$/SELINUX=disabled/’ /etc/selinux/config
尝试登录ssh,一切正常后关闭telnet服务
确认安装完毕后注释/etc/securetty 添加的pts/1
关闭telnet服务
5、安装openssl
部分版本ssh升级需安装高版本的openssl
yum remove openssh -y 卸载原有openssl
下载openssl
解压 openssl
cd openssl-1.1.1l/
./config --prefix=/usr/
make -j 4&& make install


#常用配置

  • ssh代理
    假设场景,有3台服务器,ABC,C不通外网,B能访问C,可通过ssh代理让A直接访问到C
    正向代理
    在本地启动端口,把本地端口数据转发到远端(让执行命令的主机将能访问的端口暴露出来)
1、在B主机上启动一个端口PortB,将B主机的端口转发到C主机的端口,此时A访问B主机的PortB等于访问C主机的PortC 远程端口映射到其他机器,访问远程主机等同于访问该主机映射到其他主机的端口
ssh -CfNg -L 0.0.0.0:PortB:HostC:PortC -o ServerAliveInterval=60 user@HostC
2、在A主机上将启动一个端口PortA,通过HostB转发到HostC:PortC上,这时访问HostA:PortA 相当于访问 HostC:PortC(本地端口通过跳板映射到其他机器,让A能访问B能访问的端口)
ssh -CfNg -L 0.0.0.0:PortA:HostC:PortC -o ServerAliveInterval=60 user@HostB	

反向代理
由远端将自己能访问的端口通过ssh转发出去,并告诉近端准备一个端口监听,访问近端监听端口的所有流量会由远端转发到C主机指定端口(让A能访问到执行命令的主机B能访问到的C端口)

1、B主机执行命令启动一个转发,将A主机的PortA映射到自己能访问的C的PortC, 此时访问A主机PortA等于访问C主机的PortC
ssh -CfNg -R HostA:PortA:HostC:PortC -o ServerAliveInterval=60 user@HostA
注:A主机/etc/ssh/sshd_config需添加 GatewayPorts yes

假如本机:只有一个ssh端口对外,另一个webport只能内网访问,可通过本地转发将webport映射出去,此时访问A主机PortA等于访问本机webport
ssh -CfNg -R HostA:PortA:127.0.0.1:webport -o ServerAliveInterval=60 user@HostA
参数详解:
-C:压缩数据
-f:后台运行
-N:不执行远程命令,需要继续再目标服务器执行命令可不加
-g:允许远端主机连接本地转发端口

  • ssh登录配置
    配置 ~/.ssh/config
    Host *
    ServerAliveInterval 60 //自动发送空字符,避免断开
    Host myserver
    HostName 192.168.1.10
    Port 22
    User root
    IdentityFile ~/.ssh/对应服务器私钥文件
    配置后可通过ssh myserver 直接登录目标服务器

私钥登录
ssh-keygen -t rsa -C “myserver” //创建密钥对 -t 指定协议 -C 添加描述
ssh-copy-id -i ‘公钥文件’ remote_ip //将本机的公钥文件添加到远程主机的~/.ssh/authorized_key文件中,-u 指定用户

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值