声明:本文只是一个小白写给其他小白看的分享之作,如有不妥请轻踩。
本文主要讨论了Ubuntu18.04开启ssh远程登录的基本步骤和注意事项。包括了密码和密钥对两种登录方式的相关操作。操作环境及相关软件:Windows10+VirtualBox6.1、Ubuntu18.04、PuTTy。本次操作虚拟机使用了桥接网络,即分配给Ubuntu18.04一个局域网ip地址,所以和实际远程登录主机没有区别。
首先我们在Windows10+VirtualBox6.1安装好一个Ubuntu,这需要一点时间,趁着这个时候,我们去下载安装PuTTy(非常好用的免费软件)。
安装好Ubuntu18.04,我们拥有了一个普通用户名asui和密码,现在开启基本的ssh服务
首先CRL+ALT+T打开终端,输入命令:
sudo apt install openssh-server
选择y,回车继续,几秒钟就可以安装完毕,然后启动服务:
sudo service ssh start
注:把start改成restart、stop就是对应的操作
我们现在来试一下是否可以远程登录,我在路由器界面知道Ubuntu18.04的ip地址是192.168.0.109,换成你的主机ip即可。打开PuTTy,输入ip地址,端口号默认22,点击Open,按照提示输入用户名和密码即可
这个时候是无法使用root账户登录的,即使你设置了root密码,因为ssh默认配置里面禁用了root用户密码登录。
多说一点,关于ufw(Ubuntu下的防火墙服务),默认ufw没有开启(可以使用sudo ufw status命令查看),所以远程ssh连接没有问题,如果我们启用了ufw,sudo ufw enable,就需要sudo ufw allow 22,打开22端口,否则无法远程访问。关闭ufw直接sudo ufw disable即可。
下面进行一些进阶操作,因为要对ssh配置文件进行修改,所以我们先下载安装vim,在putty窗口的终端里运行
sudo apt install vim
选择y回车,很快安装完成。打开/etc/ssh
cd /etc/ssh
ls一下,会发现有sshd_config这个文件,它就是ssh 服务器端的配置文档,我们打开看一下
sudo vim sshd_config
你需要拉大putty窗口或者按下方向键才能看到全部内容。我随便截取了一小部分(putty默认的配色蓝字黑底太辣眼睛,我改成了这样)
#代表后面的内容被注释掉了,但请注意,#后面原始的内容代表的是ssh的默认配置(比如端口22),你如果想修改配置的话,可以直接复制默认配置,更改参数,去掉#,加在默认配置下面就好。(按i键会进入vim编辑模式。编辑完成后按esc回到命令模式输入:wq保存退出,注意这个:要按的)
我们看几个重要的部分
#PermitRootLogin prohibit-password
默认禁止root用户使用密码登录,所以我们如果想用密码登录root的话,只要加一行
PermitRootLogin yes
然后
sudo service ssh restart
就可以密码登录root了,但是这种操作并不推荐。
#PubkeyAuthentication yes
默认允许密钥登录
那么如何设置密钥登录呢?首先我们制作密钥对,Windows下打开Puttygen(安装putty自带),type key选择RSA(默认不用改),点击generate,鼠标随便动一动,在框里会生成公钥,把框内公钥全部复制保存到文本里备用。输入key passphase并重复,这是对私钥进行密码保护,当然也可以为空,然后save private key(务必妥善保存私钥)。
现在我们要建立/root/.ssh/authorized_keys,这里遇到了一点权限问题,最后我是直接切换为root账户(要先设置好root密码,设置root密码:sudo passwd root,再输入当前密码,然后设置root密码即可),我们登陆普通用户,依次输入如下命令,密码那里输入root密码
vim之后,复制公钥,在putty框里右键就可以黏贴过来,然后输入:wq即可(:要按的),然后重启ssh服务。这样服务器端就配置好了。
打开putty,点击SSH、Auth,Browse你保存在本地的私钥
然后点击最上面的Session,输入ip,端口,打开即可,需要输入密钥的密码
这样我们就实现了密钥登录root账户的操作。
如果我们想让刚才的普通用户也可以密钥登录该怎么办呢?
很简单,仿照root用户的例子,使用普通用户登录,在/home/你的用户名下建立.ssh,然后vim authorized_keys,复制公钥进去,之后的操作和上面一模一样。
好了,现在我设置了密钥登录,希望后面普通用户也禁止密码登录怎么办呢?很简单
sudo vim sshd_config
加上
PasswordAuthentication no
就可以了(注意保存完之后重启ssh服务)
好的,本文就写到这里,谢谢大家!
赞,收藏,评论,分享,这些互动都是对我的支持!也是我写下去的重要动力!