Client端:@H_403_2@
如果不想泄露服务器的密码,就使用公钥-秘钥对(任何一对公钥-秘钥都可,一般是将Server的秘钥拷贝到Client端。)。Shell、PHP、Python等解释型语言可以使用公钥-秘钥,C、Java等编译型语言就无所谓了。
@H_403_2@
1.sshpass非交互密码认证:@H_403_2@
sshpass -p 123456ssh -Nqf -o TCPKeepAlive=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=10 -o StrictHostKeyChecking=no -R 10000:localhost:22 -p7122 setup@zhangyi.rimag.com.cn@H_403_2@@H_403_2@
2.公钥-秘钥认证@H_403_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@H_403_2@
@H_403_2@
@H_403_2@
注意 id_rsa@H_403_2@文件的权限@H_403_2@@H_403_2@
chmod 600id_rsa@H_403_2@@H_403_2@@H_403_2@
3.公钥-秘钥生成@H_403_2@
Server端:@H_403_2@
查看端口号,ssh 隧道是否连通:@H_403_2@
@H_403_2@
@H_403_2@
连接Client端:@H_403_2@
ssh -o StrictHostKeyChecking=no -p10000 zhangyi@127.0.0.1
@H_403_2@
@H_403_2@
断掉进程:@H_403_2@
Server:@H_403_2@
sudo netstat -lanp | grep 10000
@H_403_2@
Client:@H_403_2@
ps -e | grep "ssh"@H_403_2@
kill -9 ID@H_403_2@
@H_403_2@
TCPKeepAlive@H_403_2@@H_403_2@
指定系统是否向客户端发送 TCP keepalive 消息。默认值是"yes"。这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。可以设为"no"关闭这个特性。@H_403_2@@H_403_2@
ServerAliveInterval@H_403_2@@H_403_2@
在linux系统中使用ssh连接远程服务器时,为了防止时间超时,每60秒Server会发一个KeepAlive请求给Client响应,避免断开连接。@H_403_2@@H_403_2@
ClientAliveCountMax 10@H_403_2@@H_403_2@
Server发出请求后,客户端没有响应得次数达到10,就自动断开连接,正常情况下,Client不会不响应
@H_403_2@@H_403_2@
StrictHostKeyChecking@H_403_2@@H_403_2@
实现当第一次连接服务器时,自动接受新的公钥。不需要手动敲yes,自动化任务用到。@H_403_2@@H_403_2@
ssh 其他参数参考:http://blog.sina.com.cn/s/blog_6ca2bddf0100rljn.html@H_403_2@@H_403_2@