使用SSH访问远程Linux主机

使用SSH访问远程的Linux主机,可以使用用户名/密码的验证方式,也可以使用私钥/公钥的验证方式。

基本用法

登陆

ssh username@remote

拷贝文件

scp path/to/file user@remote:/path/to/file

使用密钥

在本地生成私钥和公钥

cd ~/.ssh

ls -al #看是否已经有私钥和公钥存在

ssh-keygen -t rsa #生成id_rsa和id_rsa.pub文件

scp id_rsa.pub user@remote:~/.ssh

在远程主机操作

cat id_rsa.pub  >> authorized_keys

一步完成

可以使用下面一条命令完成公钥的复制和导入:

ssh-copy-id user@remote

在本地发起无密码登陆

ssh user@remote
#如果用本地用户名和远程用户名一致,则无需输入用户名

使用SSH进行反向端口映射

首先安装autossh保持连接不会呆死,然后运行:

autossh -fNR remotePort:localhost:localPort user@remotehost

最后的-N是为了不用打开ssh终端进入远程主机,-f是为了让进程在后台继续运行。

默认情况下,远端服务器只监听localhost,如果要对公网开放,需要修改/etc/ssh/sshd_config,添加

GatewayPorts yes

然后重启sshd服务

/etc/init.d/ssh restart

参考链接

http://stackoverflow.com/questions/5280827/can-someone-explain-ssh-tunnel-in-a-simple-way

http://toic.org/blog/2009/reverse-ssh-port-forwarding/#.VAWKLHWSy1I