使用SSH密钥实现免密登陆Linux服务器

9 篇文章 0 订阅

SSH密钥可以在linux生成,也可以在Windows 上生成,用法都是一样的。

如果在Windows上生成,公钥需要上传至Linux,并写入到authorized_keys文件;

如果在Linux上生成,私钥下载到Windows使用。

服务器间的相互免密登陆也是一样的用法。

下面介绍的是在Linux服务器生成ssh密钥:

1、进入Linux系统的用户目录下的.ssh目录下,root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例:

密钥生成命令:

ssh-keygen -f /root/.ssh/daniel -t rsa -b 4096

# -f :生成密钥对的路径及文件命名,也可以不写如:ssh-keygen -t rsa
# -b :指定了长度,也可以不加

  • daniel:私钥,放在自己电脑上用来登录
  • daniel.pub:公钥,部署在服务器上用来校验
  • passphrase 是给私钥添加一个密码,也可以直接回车,不加密码

2、把公钥拷写入到authorized_keys文件,这里可以使用ssh-copy-id自动完成,也可以手动追加公钥到文件内。

方法一(推荐):使用ssh-copy-id

ssh-copy-id -i /root/.ssh/id_rsa.pub -p 1022 root@43.129.xxx.xxx

#-p :指定端口,不是默认端口(22)需要指定端口,如1022
#地址:要远程访问的服务器用户名@ip

 需要输入root的登陆密码确定。

方法二:

进入远程服务器需要SSH登录的用户的目录下,这里仍然用root用户,cd /root/.ssh,执行ls看看目录下是否有authorized_keys文件没有的话则执行以下命令创建:

touch authorized_keys

执行成功会创建空authorized_keys文件,授予600权限(注意:此处权限必须是600):

chmod 600 /root/.ssh/authorized_keys

如果已经有了authorized_keys文件,这直接执行以下的密钥追加工作。

将上面生成的公钥daniel.pub追加到authorized_keys文件中:

cat /root/.ssh/daniel.pub >> /root/.ssh/authorized_keys

 3、对/etc/ssh/sshd_config 文件修改配置:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys
#公钥文件存放的位置
# %h 所代表为目前linux登陆用户根目录,如果写绝对值如/root/.ssh 只能配置此根目录对应的用户,如果有多个用户需要密钥配置,需要%h来配置

修改完配置后,一定要重启ssh

systemctl restart sshd

4、 密钥准备好了接下来就可以使用密钥登录了

在Windows系统上使用密钥的话要看您使用的工具是否支持密钥登录,把linux上的私钥daniel 下载到windows,再用远程工具导入私钥 登陆。

命令登陆:

ssh -i ./daniel root@43.129.xxx.xxx
或者ssh root@43.129.xxx.xxx -i ./daniel

注意:daniel是私钥,这里是进入私钥的目录下操作的,如果没在私钥的目录下,请写全目录,比如/opt/daniel,也可以是您自定义的目录。执行命令过程中,如果创建密钥对的时候设置了密码,则会提示您输入密码,没有的话会直接登录。

5、如果一个服务器有多个用户需要配置密钥登陆,重复上面操作,对应好各自用户根目录下的公钥文件及authorized_keys文件即可,sshd_config 不需要再修改的。如:

注:

known_hosts:ssh会把你每个你访问过计算机的公钥(public key)都记录在known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

authorized_keys:为了让两个机器之间使用ssh不需要用户名和密码,采用了数字签名RSA或者DSA来完成这个操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值