一、SSH的安装和启动(两台电脑都要进行以下操作)
1.判断电脑是否安装了SSH
dpkg -l | grep ssh
其中openssh-client代表电脑已安装ssh客户端
其中openssh-server代表电脑已安装ssh服务端
2.安装客户端与服务端(建议两台电脑不论是想用来作服务端还是客户端,都安装上即可)
sudo apt-get install openssh-client
sudo apt-get install openssh-server
3.启动ssh
(1)判断是否启动了ssh
ps -e | grep ssh
sshd代表已经启动了ssh-server
(2)若未启动ssh,调用启动指令
sudo /etc/init.d/ssh start
(3)停止、重新启动ssh
停止ssh
sudo /etc/init.d/ssh stop
重新启动ssh
sudo /etc/init.d/ssh restart
至此ssh的安装以及启动你已经掌握,接下来看如何远程连接
二、远程连接(需要密码,无法可视化)
1.客户端服务端解释
两台电脑用户名为A和B,如果A要远程操纵B,则A为客户端B为服务端,反之亦然。
2.远程连接
(1)查询服务端的IP地址
我们需要确定客户端、服务端使用同一个局域网
在服务端使用指令
ifconfig
在客户端使用相同指令
我们找客户端、服务端前三部分相同的地址,我的是192.168.31.***
因此确定服务端的用户名@id为:qust-mbot@192.168.31.92
确定客户端的用户名@id为:rws@192.168.31.8
(2)连接
声明:SSH服务的默认端口是22,如果不设置端口号的话,客户端会连接远程服务端的22端口,如果要修改,可以使用 -p 来修改端口号,比如连接到服务器的8400端口:
ssh -p 8400 qust-mbot@192.168.31.92
接下来使用客户端远程连接服务端
在客户端打开终端输入指令
ssh mbot-qust@192.168.31.92
如果是第一次输入会出现如下
输入:yes
接下来会让你输入服务端的密码
输入密码后你的该终端窗口会变成远程服务段的终端窗口,证明连接成功
(3) 退出连接
ctrl+D
至此远程连接已经可以实现,但是我们发现如果要在客户端看服务端显示的窗口,用以上指令是实现不了的,如:我调用服务端的时钟
接下来实现可视化
三、远程连接(需要密码,可视化)
1.在客户端使用指令,用于修改只读文件ssh_config
sudo gedit /etc/ssh/ssh_config
使用指令后会打开一个文本框修改其中内容
修改后:
保存后退出
2.在服务端使用指令,用于修改只读文件sshd_config
sudo gedit /etc/ssh/sshd_config
使用指令后会打开一个文本框修改其中内容
修改后:
保存后推出
3.远程连接(用户名跟网址号同上)
在客户端使用指令
ssh -X qust-mbot@192.168.31.92
输入密码后连接成功
4.测试
我们尝试在客户端使用指令打开服务端桌面上的1.png图片
xdg-open /home/qust-mbot/Desktop/1.png
我们看到在客户端可以成功打开服务端可视化的东西,表示成功
至此,远程通讯以全部实现,但是我们发现每次连接都需要输入密码很麻烦,接下来实现公钥连接
四、公钥连接
1.生成密钥
在客户端打开一个终端输入以下指令
ssh-keygen -t rsa
连按三次回车
在/home/rws中会有一个.ssh文件夹,证明生成成功
2.连接服务端
用上述方法连接服务端
ssh -X qust-mbot@192.168.31.92
3.复制公钥
在客户端的已经连接上服务端的终端窗口,使用以下指令,将公钥从客户端远程复制到服务端
ssh-copy-id qust-mbot@192.168.31.92
发送成功后服务端的主目录下也会出现一个.ssh文件夹,证明发送成功
4.测试
在客户端新建一个终端,直接使用连接指令,不须要使用密码,直连。
5.可能出现的问题
公钥已经复制成功,但是在客户端连接服务端时仍需要输入密码。
解决方法:
在服务端打开终端
cd .ssh
chmod 700 ../
chmod 700 .
chmod 600 authorized_keys