Linux Mac ·

配置SSH自动远程登录

在本地机器创建公钥

打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可。

-t 指定密钥类型,默认即 rsa ,可以省略,-C 设置注释文字,比如你的邮箱。

将公钥复制到ssh服务器

将前一步骤生成的公钥~/id_rsa.pub文件,复制到ssh服务器对应用户下的~/.ssh/authorized_keys文件,可以有多种方式,这里只介绍最简单的一种。

  • 使用ssh-copy-id命令将公钥复制至ssh服务器

将username和hostname替换为你的ssh服务器用户名和IP

权限问题

.ssh文件夹 700

authorized_keys文件 644

允许密钥登录

允许用户自行使用成对的密钥系统登录服务器,这里仅针对协议版本 2。用户自己生成的公钥数据就放置于相应的服务器上该用户自己的用户目录(例如,/home/luser1 )下的 .ssh/authorized_keys

文件里面,打开 /etc/ssh/sshd_config,找到下面内容:

去调上面3行前面的#,保存后重启SSH服务。

centos 7 使用下面命令:

快捷登录

完成以上步骤后,即可使用以下命令直接登录ssh服务器,妈妈再也不用担心你记不住密码了

将username替换为你的ssh服务器用户名,hostname替换为服务器的ip

但是,每次仍然需要输入ssh username@hostname,仍算不上最优的解决方案,要是能实现一键登录或一条命令登录最好不过了,下面来看看都有那些解决方法ssh本身也提供了一种快捷的方式来解决这个问题,往~/.ssh/config配置文件添加你的ssh服务器信息即可

若没有该文件,直接新建即可

添加文件内容格式如下:

保存文件退出后,即可使用别名登录ssh服务器

若有多个ssh账号需要配置,只要在~/.ssh/config空行再写即可,如下:

安全配置

在你使用SSH Key登录验证成功后,还是为了安全,建议你关闭root用户使用密码登陆,关闭的方法如下:修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:

修改为:

不允许空密码登录,默认已经是 no,

允许 SSH 登录的用户名/用户组。可以同时使用,也可以仅使用下面一种。

使用用户组的好处是在更换用户、添加/删除用户的时候都需要维护此配置。所以建议用用户组来管理,有新用户产生,直接将它添加到这个附加用户组中就可以了。但是,如果这个服务器只有自己一个人用,那还是直接允许自己用的那个帐户就好了。将用户添加到附加用户组参考这里。简单说就是,

不让 sshd 去检查用户目录或某些重要档案的权限数据,这是为了防止用户将某些重要档案的权限设错。例如用户的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登录。

保存后重启SSH服务。

centos 7 使用下面命令:

好了,只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登陆来说已经安全多了。

参与评论