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
2
chemicalfiber@chemicalfiber-hp:~$ ps -e | grep ssh
4792 ? 00:00:00 sshd

如果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
2
3
4
5
6
7
8
9
10
11
12
13
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:FkTM4WXL6u1R6roBLbcmLyzkdqAE/aWPlEkQUhGq0hs.
Please contact your system administrator.
Add correct host key in /Users/chemicalfiber/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/chemicalfiber/.ssh/known_hosts:3
ECDSA host key for 192.168.205.129 has changed and you have requested strict checking.
Host key verification failed.

你是否重新安装了远程主机中的操作系统?

如果是,那么这就是正常现象。你的远程主机虽然幸运地占用着与重装系统之前相同的IP地址,但是传递过来的安全密钥发生了改变,请将你远程主机中的密钥保存到你的Mac上的/Users/用户名/.ssh/known_hosts文件上.
打开known_hosts这个文件之后,找到你要远程连接的主机IP地址,下方的一长串乱码就是它的旧密钥,用新的密钥替换就好。
如果你不知道密钥,直接删除你的远程主机IP地址那行和它下面那一大段即可。
重新ssh连接一次你的远程主机,就可以成功连接了。

如果不是,你可能遭到了中间人攻击 (man-in-the-middle attack),你需要等到攻击停止之后再尝试连接你的远程主机。

相关链接:

1、参考文章:https://www.jianshu.com/p/fdbb3cf07ee0