[root@centos7 ~]# ssh 10.0.1.253 Last login: Fri Nov 11 11:08:37 2016 from 10.0.1.254 [root@idc-v-71253 ~]#
还可以通过ssh远程执行命令:
[root@centos7 ~]# ssh 10.0.1.252 "hostname" root@10.0.1.252's password: #输入密码 idc-v-71252 #显示命令结果 [root@centos7 ~]# #并不登录
或者手动将公钥拷贝至目标主机:
[root@centos7 ~]# cat /root/.ssh/id_rsa.pub | ssh 10.0.1.252 "cat - >> /root/.ssh/authorized_keys" root@10.0.1.252's password: #输入密码 [root@centos7 ~]# ssh 10.0.1.252 #免密登录 Last login: Thu Nov 10 14:42:11 2016 from 192.168.78.135 [root@idc-v-71252 ~]#
选项-p为登录指定端口:
[root@centos7 temp]# ssh -p22 10.0.1.252 Last login: Fri Nov 11 11:44:31 2016 from 10.0.1.254 [root@idc-v-71252 ~]#
端口设置在服务端配置文件/etc/ssh/sshd_config中,默认端口号为22,如更改需将#Port 22去掉注释并将22更改为需要的端口,然后重启sshd服务service sshd restart或systemctl restart sshd。
如果需要使用另外的用户登录系统则执行ssh user@host
我们可以用tar命令结合ssh和管道,将本地(远程)文件备份到远程(本地):
tar zc /home/temp | ssh user@host "tar xz" #本地temp目录备份到远程 ssh user@host "tar cz /home/temp" | tar xz #远程temp目录备份到本地
选项-L [bind_address:]port:host:hostport设置本地端口转发
[root@centos7 ~]# ssh -L 2222:10.0.1.252:22 10.0.1.253 Last login: Mon Nov 14 10:34:43 2016 from 10.0.1.254 [root@idc-v-71253 ~]# #注意如果这里exit断开连接,则此转发也将终止。
此命令的意思是绑定本地端口2222,并将所有发送至此端口的数据通过中间主机10.0.1.253转发至目标主机10.0.1.252的22端口,此时如果用ssh登录本机的2222端口,则实际登录的是主机10.0.1.252
[root@centos7 ~]# ssh -p 2222 127.0.0.1 Last login: Mon Nov 14 10:34:56 2016 from 10.0.1.253 [root@idc-v-71252 ~]#
这里默认绑定的是本机的环回口127.0.0.1,如绑定到其他地址,则根据语法设置bind_address。
选项-N表示不执行命令,只设置端口转发时有用
由于上述端口转发命令ssh -L 2222:10.0.1.252:22 10.0.1.253会登录到中间主机,并且退出后端口转发也会终止,使用-N选项将不会登录,再配合shell后台执行,将会是一个不错的设置端口转发的选择(但要注意对中间主机需要免密码登录):
[root@centos7 ~]# ssh -N -L 2222:10.0.1.252:22 10.0.1.253 & [1] 12432 [root@centos7 ~]#
命令最后的符号&表示此命令将在后台执行,返回的信息中[1]表示后台命令编号,12432表示命令的PID。(关于shell后台命令,以后的文章中会有叙述)
选项-R [bind_address:]port:host:hostport 设置远程端口转发










