Ubuntu 14.04 LTS ssh隧道

Client端:

如果不想泄露服务器的密码,就使用公钥-秘钥对(任何一对公钥-秘钥都可,一般是将Server的秘钥拷贝到Client端。)。Shell、PHP、Python等解释型语言可以使用公钥-秘钥,C、Java等编译型语言就无所谓了。

1.sshpass非交互密码认证:

sshpass -p 123456 ssh -Nqf  -o TCPKeepAlive=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=10 -o StrictHostKeyChecking=no -R 10000:localhost:22 -p7122 setup@zhangyi.rimag.com.cn

2.公钥-秘钥认证

ssh -Nqf -i id_rsa -o TCPKeepAlive=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=10 -o StrictHostKeyChecking=no -R 10000:localhost:22 -p7122 setup@zhangyi.rimag.com.cn

注意 id_rsa文件的权限

chmod 600 id_rsa

3.公钥-秘钥生成

ssh-keygen
 
一直回车,会在 ~/.ssh/ 目录下生成 一对 id_rsa(私钥)  id_rsa.pub(公钥)
把私钥拷贝到别处,将公钥公钥写到 authorized_keys 就可以无需密码访问
 
known_hosts 相当于访客登记,每次客户端输入 yes 就是这个文件

 

Server端:

查看端口号,ssh 隧道是否连通:

sudo netstat -lanp | grep 10000

 

连接Client端:

ssh -o StrictHostKeyChecking=no -p10000 zhangyi@127.0.0.1

 

断掉进程:

Server:

sudo netstat -lanp | grep 10000

Client:

ps -e | grep "ssh"

kill -9 ID

保证 ssh 隧道稳定性

网络的波动或者其他原因会影响 ssh 隧道连接的稳定,使用 autossh 可以保证隧道的稳定性,autossh 是一个用来启动 ssh 并进行监控的程序,可在需要时重启 ssh。

使用方法很简单,比如原来直接用ssh的命令:

ssh -p10000 zhangyi@127.0.0.1

改为:

autossh -M 5122 -p10000 zhangyi@127.0.0.1

TCPKeepAlive

 

指定系统是否向客户端发送 TCP keepalive 消息。默认值是"yes"。这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。可以设为"no"关闭这个特性。

 

ServerAliveInterval

在linux系统中使用ssh连接远程服务器时,为了防止时间超时,每60秒Server会发一个KeepAlive请求给Client响应,避免断开连接。

 

ClientAliveCountMax 10

Server发出请求后,客户端没有响应得次数达到10,就自动断开连接,正常情况下,Client不会不响应

 

StrictHostKeyChecking

实现当第一次连接服务器时,自动接受新的公钥。不需要手动敲yes,自动化任务用到。

ssh 其他参数参考:http://blog.sina.com.cn/s/blog_6ca2bddf0100rljn.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值