作为一个想使用Ubuntu系统的我来说,每次安装虚拟机后,自然要安装ssh服务了,毕竟Xshell用起来超爽的。
每次安装都要看书、上网,这里总结一下标题中的三大部分,加深记忆,毕竟写一遍记得快。
环境:VMware+ubuntu-16.04.5-server-amd64+Xshell
Part1:root密码设置
刚安装好虚拟机后,用户不是root用户,这时候输入“su”想切换成root身份的操作是不行的:
“Authentication failure”,因为根本没有设置密码,输入什么密码都肯定是错的啊。
root初始密码设置:
sudo passwd root
如下图,设置完root密码之后,再次“su”一下并且输入刚刚设置的密码,就切换到root身份了
Part2:开启SSH连接服务
- 虚拟机安装好后网络模式默认如下:
- 可以看到,是NAT模式,关于“NAT模式”和“桥接模式”以及“仅主机模式”这三种模式的区别,可以设置一下然后进入Ubuntu感受
- 使用指令“ip a”查看虚拟机的IP地址:
- 这个时候如果想在Xshell中连接是不行的
- 需要安装ssh服务:apt-get install openssh-server
- 安装好后,再次在Xshell ssh,还是不行,说是密码错误
- 重启(reboot)再次尝试也不行
- 为什么ssh不上呢?应该是需要修改ssh连接root权限的配置吧,但是我试了试不用root身份登录,而是使用安装虚拟机时的用户身份(这里偷懒了,虽然可行,但是在part3会出问题,不偷懒的操作请看接下来的part3),这样是可以连上的:
- ssh xxx@ip 其中xxx是你设置的用户名,ip就是使用“ip a”查到的虚拟机IP地址
- 这个时候再次“su”一下,输入root密码就可以切换到root身份了
Part3:SSH免密登录
- 这一步一般用不到,我是在使用ansible的时候用到的,这里也顺便记录一下,一共两步:
ssh-keygen -t rsa -b 2048 回车 回车 回车
ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
详情:
- 首先,输入命令“ssh-keygen -t rsa -b 2048”,在下图中的三个地方直接敲三次回车:
- 然后,通过查看本机的ip,我的ip是“192.168.198.134”,输入第二条指令,如下图:
- 输入了三次密码都不对,被拒绝了,为什么呢?
- 原因就是,在Part2,我偷懒了,没有开启ssh的root登录方式,这里报错了。
- 于是弥补part2的步骤:
vim /etc/ssh/sshd_config
- 将下面左图中红色部分改成右边的样子(PermitRootLogin yes),保存退出
- 为了确保能够生效,重启ssh服务:
service ssh restart
- 这时候,再来进行本部分的第二步操作(由于我只有一台虚拟机,所以只有一个ip地址):果然,输入密码之后就成功了
- 检测一下免密登录是否成功:
- 如上图,很显然,ssh自己是可以的,免密登录操作结束