在上一篇文章(Linux学习笔记9)中,我们简单的讲解了ssh命令,但是没有具体演练。本篇文章着手处理使用ssh命令远进行程访问时出现的问题,详细解释并提出解决办法。
01.用SSH进行远程访问
我们知道,Linux内核的操作系统都默认安装了SSH,我们只需要键入命令
ssh [-p port] user@remote
- user 是远程机器上的用户名,如果不指定的话默认为当前用户
- remote是远程机器的地址,可以是IP/域名,或者是后面会提到的别名
- port是SSH Server监听的端口,如果不指定,就默认为22
就可以远程访问另一台Linux系统的计算机了,那么我们就在终端尝试一下。
1.首先我们在要访问的电脑(服务器)上键入:
- ifconfig | grep inet
来查询其IPv4地址,前面绿色的字就是其用户名。
由此知其用户名为python,IPv4地址为192.168.92.129
2.然后我们可以在我们的电脑(客户端)上键入:
- ssh -p 22 python@192.168.92.129
结果如图
终端要求我们输入IP地址为192.168.92.129的计算机上用户python的密码,我们输入密码
显示登入成功。
注意在用ssh远程登入前后我们绿色的字的变化:
原来是alexlu@ubuntu16-04
现在是python@ubuntu
- 注意:python是用户名,一台计算机可以拥有多个用户,而@后面的ubuntu是计算机名称,可以在右上角的about this computer上查看和更改
这绿色的字的变化说明我们从ubuntu16-04计算机上的alexlu用户变成了ubuntu计算机上的python用户。
3.此时我们可以在终端上创建文件,然后在被访问的计算机上看看发生了什么
可以输入:
- touch 123.txt
- echo hello python > abc.txt
让我们看看结果如何:
客户端上显示多了123.txt以及abc.txt,让我们看看服务器发生了什么吧!
我们看到,在远程的服务器也创建了123.txt以及abc.txt,说明我们成功的用客户端远程登入到服务器并能够进行相关的操作了!
在让我试一试在客户端远程操作让服务器重新启动。
输入
- shutdown -r now
发现权限不够,这时就需要sudo命令获得管理员权限了
- sudo shutdown -r now
这时我们就让服务器重启了,服务器的结果如下:
服务器重新启动,进入登录界面
02.容易出现的问题
很多小伙伴认为Linux既然默认安装了SSH那么我们直接输入命令就可以用了啊!其实你如果是第一次使用ssh命令,你可以试试有没有出现上面预期的结果。
我们先用一个简单的解决办法(适合于Ubuntu)
1.检测本机的ssh服务是否正常
键入命令:
- ssh localhost
出现错误提示connect to host localhost port 22:Connection refused
成功时显示:
如果出现了错误,则应该是ssh-server未安装或未启动
通过键入:
- sudo apt-get openssh-server
2.安装ssh
然后再输入命令:
- sudo service sshd start
- sudo service sshd status
来启动sshd并查看状态,结果为:
其中输出信息的绿色字段
active(running)
说明sshd在正常工作,在客户端计算机和服务器计算机都安装和启动完成后,我们就可以用ssh命令进行远程访问了!
3.针对各种情况的详细操作
这里有一篇博文值得参考,不仅针对Ubuntu,对很多其他Linux发行版都分别做了处理方法的总结。
linux安装ssh和开启 ssh服务