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 [email protected]

2.公钥-秘钥认证

ssh -Nqf -i id_rsa -o TCPKeepAlive=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=10 -o StrictHostKeyChecking=no -R 10000:localhost:22 -p7122 [email protected]


注意 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 [email protected]


断掉进程:

Server:

sudo netstat -lanp | grep 10000

Client:

ps -e | grep "ssh"

kill -9 ID


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


你可能感兴趣的:(#,Ubuntu)