mac终端ssh连接Linux(Ubuntu)笔记
最近在搞一些和Linux相关的工作,但是虚拟机太卡了,所以指导老师建议我使用ssh连接虚拟机里的Linux(Ubuntu)。毕竟纯命令行肯定是要比GUI反应快。在调试和配置过程中遇到了一些问题,故在此做下笔记避免以后踩坑。
首先,做一下检查工作。看看Linux系统是否安装openssh-server
。
Ubuntu系统「似乎」默认安装了openssh-client
,但没有安装openssh-server
。
通过ps -e | grep ssh
检测安装server是否成功,如果出现sshd
,代表安装成功。如果没有,那就安装。
1、安装openssh-server
Ubuntu系统「似乎」默认安装了openssh-client
,但没有安装openssh-server
。
那么如何安装openssh-server
呢?
命令:sudo apt-get install openssh-server
Warning:
如果你使用的是阿里云的apt镜像服务器,会出现“没有那个软件包”的错误。所以我建议大家临时将apt服务器改回美国的根服务器,或者新加坡的镜像服务器,这样就能下载到openssh-server这个软件包了。
(虽然阿里的apt镜像服务器下载常规的东西比较快,但是有些包没同步过来这点就比较难受了)
2、检测openssh-server是否安装成功
通过ps -e | grep ssh
检测安装openssh-server是否成功,如果出现 sshd ,代表安装成功。
1 | chemicalfiber@chemicalfiber-hp:~$ ps -e | grep ssh |
如果ssh服务没有启动,则在终端输入sudo /etc/init.d/ssh start
启动服务。
至此,Linux端的准备工作完成。
3、mac端ssh远程连接linux端
连接命令格式:ssh [-p 端口号] 用户名@远程服务器ip或域名
例如:ssh -p 22 [email protected]
- 如果你没有更改ssh端口(默认是22)的话,你甚至可以不写
-p 22
这段,写成这样就好:ssh [email protected]
- 如果你要连接的Linux主机上只有一个用户,并且没有更改ssh端口(默认是22)的话,你甚至可以不写用户名,直接使用IP/域名连接,例如:
ssh 192.168.205.129
输入命令之后,mac的终端会要求你输入密码,这时,输入你要登录的主机的密码,而不是你的Mac登录密码。
输入密码的过程和Mac终端操作差不多,不会显示星号,如果感觉自己输入错误,建议直接按下return(Enter),然后重新执行上面的ssh连接命令。
密码输入正确后,你应该会看到mac的终端输出一些信息,此时,你在你的mac终端上输入的命令都会传递到你登录的远程主机上,而不会作用在你的Mac上。打个比方,你即使rm -rf
都不会伤到你的Mac一分一毫。
常见问题
1、如果出现以下报错:
1 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
你是否重新安装了远程主机中的操作系统?
如果是,那么这就是正常现象。你的远程主机虽然幸运地占用着与重装系统之前相同的IP地址,但是传递过来的安全密钥发生了改变,请将你远程主机中的密钥保存到你的Mac上的/Users/用户名/.ssh/known_hosts
文件上.
打开known_hosts
这个文件之后,找到你要远程连接的主机IP地址,下方的一长串乱码就是它的旧密钥,用新的密钥替换就好。
如果你不知道密钥,直接删除你的远程主机IP地址那行和它下面那一大段即可。
重新ssh连接一次你的远程主机,就可以成功连接了。
如果不是,你可能遭到了中间人攻击 (man-in-the-middle attack),你需要等到攻击停止之后再尝试连接你的远程主机。