CentOS Linux SSH秘钥登录配置

登录Linux服务器,除了使用账号密码登录这种方式外,我们也可以使用ssh秘钥来登录。

ssh秘钥登录Linux的方法大体是使用rsa生成公私密钥对,其中吧公钥放在服务器上,而私钥存放在客户端。这样可以达到免密登录。

一、使用ssh-keygen生成RSA秘钥对

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Kc0xeDMJp9Ki0f5sZU1sqdq18lc6MDcClchDuF1oxnM demo@test-server
The key's randomart image is:
+---[RSA 2048]----+
| .=oo . |
| . ..=XoE. |
| . + +=B*= |
| + o.+o@ |
| . . . S.o |
| o * .+.o . |
| = o .= + |
| . o + |
| .. . |
+----[SHA256]-----+

可以看到ssh-keygen在/home/demo/.ssh/目录下生成了两个文件:id_rsa和id_rsa.pub,其中id_rsa为私钥,id_rsa.pub为公钥。

二、把公钥的内容追加到.ssh目录下的authorized_keys文件中

这里分为两种情况:

1、authorized_keys文件存在,里面已存在其他用户登录的公钥,那么只需要把生成的公钥的内容追加到authorized_keys

cat id_rsa.pub >> authorized_keys

注意追加是两个大于号,单个大于号是覆盖

2、如果authorized_keys不存在,则可以直接把id_rsa.pub重命名为authorized_keys

mv id_rsa.pub authorized_keys

三、修改authorized_keys访问权限

将目录.ssh权限设置为700,公钥文件authorized_keys设置为644

$ chmod 700 ../.ssh/
$ chmod 644 authorized_keys

四、修改ssh配置

vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

这里有一点很重要,在你配置密钥登录成功之前,不要把

PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录,就悲剧了

在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了,比较安全

五、使用私钥登录

把生成的私钥id_rsa下载到客户端,客户端登录时选择使用秘钥登录,并且选择与服务器配对的私钥,也就是下载到客户端的私钥id_rsa


版权声明:著作权归作者所有。

相关推荐

GitLab安装(CentOS 6)

这里主要介绍在CentOS 6上使用综合安装包安装GitLab。1、安装配置依赖1.1、执行以下命令,开放防火墙对http和ssh的访问。sudo yum install -y curl policycoreutils-python openssh-server cronie sudo lokkit 

Linux安装PhantomJS(CentOS)

本文演示在CentOS 7 64位安装PhantomJS。下载PhantomJS下载地址:http://phantomjs.org/download.html。在下载页面找到Linux安装包(如phantomjs-2.1.1-linux-x86_64.tar.bz2 ),复制下载链接,使用wget下载:$wget https://bitbucket.org/ariya

CentOS 7安装Docker环境

在CentOS上有两种方式安装Docke:https://get.docker.com/联网脚本安装使用yum安装联网脚本安装1、更新yum源sudo yum update 2、联网下载脚本安装curl -sSL https://get.docker.com/ | sh 使用yum安装1、更新yum源sudo yum 

Jenkins集成Git ssh key密钥认证

Jenkins有两种方法集成Git的ssh key认证:这种方法很简单,只要把私钥拷贝到jenkins用户的~/.ssh目录,当git使用ssh访问仓库时会尝试使用此私钥。1、切换为jenkins用户$sudo su jenkins 2、创建.ssh目录,已存在目录忽略此步$cd ~ $mkdir .ssh 3、创建访问git的ssh k

SSH 禁止特定用户使用密码登录

SSH禁止特定用户使用密码登录可以在/etc/ssh/sshd_config添加Match配置过滤指定的用户。按用户过滤Match User user1,user2,user3,user4     PasswordAuthentication no 按组过滤Match Group group1  &

CentOS安装JDK

CentOS下有三种方式安装JDK。下载压缩包安装1. 下载压缩包参考Linux使用wget和curl下载jdk。2. 新建安装目录,并解压安装包到安装目录[root@iZ9 ~]# mkdir/usr/java [root@iZ9 ~]# cd /usr/java [root@iZ9 ~]#  tar -zxvf jdk-8u