使用ssh进行文件传输以及远程登录图形化界面

Using ssh to transfer files and telnet GUI

Posted by Icep on February 24, 2019

运行环境:远程系统是ubuntu

使用ssh命令行与远程服务器进行文件传输

上传本地文件到服务器

1
$ scp /var/www/test.php root@192.168.0.101:/var/www/

(把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中)

从服务器上下载文件

1
$ scp root@192.168.0.101:/var/www/test.txt /var/www/

从服务器下载整个目录

1
$ scp -r root@192.168.0.101:/var/www/test /var/www/

(前面为远程目录,后面为本地目录)

上传目录到服务器

1
$ scp -r test root@192.168.0.101:/var/www/

登录ssh后使server端的图形界面显示到client端

A端登陆到B端

首先,我们需要在B端获取A端登录的ip,也就是获取ssh登录用户的ip地址

step1:找sshd进程

1
2
3
4
5
$ ps -ef|grep sshd
root      1693     1  0 Aug13 ?        00:00:00 /usr/sbin/sshd   #父进程号是1的是系统服务进程
root     12598  1693  2 14:59 ?        00:00:00 /usr/sbin/sshd   #有这个进程说明有SSHD远程客户登录
root     12638  1693  0 15:02 ?        00:00:00 /usr/sbin/sshd   #这是第二个登录用户
root     12633 12600  0 14:59 pts/0    00:00:00 grep sshd

step2:根据登录上来的进程号找到用户进程

1
2
3
$ ps -ef|grep 12598
root     12598  1693  0 14:59 ?        00:00:00 /usr/sbin/sshd
root     12600 12598  0 14:59 pts/0    00:00:00 -bash            #第一个用户,居然还是用root登录的。

step3:根据bash进程的终端号pts/?来确定来源

1
2
$ who -a|grep pts/0
root     + pts/1        Aug 14 15:02 00:03       12640 (192.168.0.123)   #登录来源IP192.168.0.123

对登录端A端进行设置

1
$ xhost + liang@125.216.231.242

修改ssh_config文件,因为A端一般都可以拥有root权限,所以可以修改将ForwardX11 no 改为 yes

1
2
$ sudo vi /etc/ssh/ssh_config
ForwardX11 yes

重启A端ssh

1
$ /etc/init.d/ssh restart

对服务端B端进行设置

设置DISPLAY环境变量

1
$ export DISPLAY=192.168.0.123:10.0

前面的192.168.0.123就是前面ssh登录端获取的ip

10代表 port_num - 6000 = 10

.0代表显示像素

如果是本地显示那么DISPLAY=:0.0

查看一下配置文件

1
$ cat /etc/ssh/ssh_config

X11Forwarding no 或者 ForwardX11Trusted yes

不然就要联系管理员获取root权限,修改配置文件

尝试一下

1
2
3
$ ssh -X liang@125.216.231.242
$ xclock
$ display

登录后,使用xclock或者display测试一下

解决登录ssh闲置时间过长而断开连接

修改/etc/ssh/sshd_config配置文件,找到ClientAliveCountMax(单位为分钟)修改你想要的值。

执行:

1
$ service sshd reload