OOIII/

mac免密码登录阿里云ubuntu及相关安全问题

MAC免密码登录UBUNTU

  1. 创建ssh key:

进入当前用户家目录下的.ssh目录(没有请创建),使用ssh-keygen -t rsa¹,键入以上命令后会提示输入密钥的保存路径与名称,默认保存在.ssh中,默认名称为id_rsa。确认后接着会提示两次提示输入使用密钥时需要验证的密码(第二次输入是密码确认),如果不提供,则使用密钥无需密码。命令完成后.ssh目录下默认产生私钥 为 id_rsa ,公钥为 id_rsa.pub,使用 cat id_rsa.pub 可查看密钥的内容。

  1. 将公钥id_rsa.pub的内容添加至服务器用于认证的公钥文件中(登录用户的家目录.ssh/authorized_keys)

先将id_rsa.pub 拷贝至服务器

scp ~/.ssh/id_rsa.pub root@192.168.1.2:~/

回车输入服务器登录密码,文件就复制到root用户的家目录下
然后在服务器端执行命令( 服务器端提前创建.ssh目录及 authoried_keys)

cat id_rsa.pub >> .ssh/authorized_keys chmod 600 .ssh/authoried_keys

authoried_keys权限必须为600,保证.ssh和authorized_keys都只有用户自己有写权限,否则验证无效。

  1. 验证无密码登录

ssh root@192.168.1.2

如果登录不需要输入密码即成功
第一次登录时如果询问是否将服务器加到本地的list of known hosts,输入yes。

进阶:

  1. 以上完成后即可免登录但还是有点复杂,需要输入账号及ip,来个简单方法

配置本地MAC  ssh config文件

vi ~/.ssh/config

加入以下内容

Host  xxx #别名,登录缩写 HostName abc.com #完整的域名或服务器ip User root #登录该服务器使用的账号名 IdentityFile ~/.ssh/id_rsa #私钥文件的路径

  1. 完成以上步骤后 终端输入ssh xxx  或者ssh abc.com 即可直接登录远程服务器
  2. 更加简单的登录方式:

sudo vi /etc/hosts

打开本地MAC  hosts文件并添加一行(因为hosts为只读,所以需要root权限修改)

192.168.1.2     ser    #ser指向服务器ip

  1. 进入MAC当前登录用户家目录

执行

vi .bash_profile

创建文件并输入以下代码²

alias abc="ssh root@ser”

保存退出,然后执行

source .bash_profile

以后直接终端输入abc 即可登录服务器

安全进阶

  1. 禁止密码登录

当配置好ssh用密钥登录后,可以禁止用户通过ssh以用户名+密码的方式远程登录系统,这样就防止了密码在网络上被截取以及暴力破解登录密码的危险。
修改/etc/ssh/sshd_config文件,把允许密码验证这一行改为no:

#Change to no to disable tunnelled clear text passwords 
PasswordAuthentication no

reboot重启服务器生效
此时只能通过密钥登录账户。

  1. 关闭root账户直接登录功能

即使禁止密码登录,直接密钥登录root账户也有一定的危险性,so应该关闭root账户直接登录的功能
修改/etc/ssh/sshd_config文件。找如下代码
#PermitRootLogin yes
修改为
PermitRootLogin no
reboot重启服务器生效
此时root账户便彻底不能远端登录,安全级别又高了一层
不过有个问题,现在root账户不能直接密码登录,不能直接密钥登录,因此在关闭root账户直接登录功能之前要新建一个账户,这样就可以切换至root账户了,当然新建的账户也要禁用密码登录,使用密钥登录,保证安全性。

新建用户最好关闭ftp登录权限或者只是允许访问家目录。

修改/etc/vsftpd/vsftpd.conf如下:

chroot_list_enable=YES //限制访问自身目录 # (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

编辑 vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行

改完配置文件,不要忘记重启vsFTPd服务器
# /etc/init.d/vsftpd restart

其他

ubuntu修改主机名
ubuntu的主机名位于/etc/hostname中
vi /etc/hostname 编辑修改主机名并保存。reboot重启服务器后,使用hostname查看当前主机名

tips

1、ssh-keygen代表生成密钥;-t 表示指定生成的密钥类型;rsa是rsa密钥认证的意思,即密钥类型
2、关于alia和source .bash_profile:
alia是指设定命令别名, 直接输入alia命令可以查看所有的别名
source .bash_profile是在当前shell环境中立即执行.bash_profile文件中的内容