如何使用ssh密钥登录远程服务器

如何使用ssh密钥登录远程服务器什么是密钥 key 使用密钥登录远程服务器的过程原理使用密钥登录远程服务器示例如何避免每次登录服务器每次都输入密码 1 什么是密钥 密钥 key 是一种参数 通过加密算法得到的 用于明文和密文相互转换的的参数 密钥分为 对称密钥 和 非对

大家好,欢迎来到IT知识分享网。

  1. 什么是密钥(key)?
  2. 使用密钥登录远程服务器的过程原理
  3. 使用密钥登录远程服务器示例
  4. 如何避免每次登录服务器每次都输入密码?

1.什么是密钥?

密钥(key)是一种参数,通过加密算法得到的。用于明文和密文相互转换的的参数。密钥分为“对称密钥”和“非对称密钥”。

对称密钥:只有一把钥匙,加密和解密都是用这把钥匙

非对称密钥:有2把钥匙,一把公开的钥匙(公钥),一把秘密保存的钥匙(私钥),公钥和私钥是一一对应的。公钥是公开的可以对外发送,私钥必须私密保存,不能泄露。

2. 使用密钥登录远程服务器的过程原理

1. 生成密钥

2. 把公钥上传到远程服务器指定位置

3. 客户端向服务器发起登录请求

4. 服务器收到客户端的登录请求,服务端生成一个随机字符串然后使用公钥加密的结果发送给客户端,要求客户端证明自己的身份。

5. 客户端收到来自服务器的数据,使用私钥进行加密,然后再发送给服务器

6. 服务器收到客户端的加密签名后,使用公钥解密,然后和原始数据做对比,来完成认证过程(如果一致,就允许用户登录

如何使用ssh密钥登录远程服务器

如何使用ssh密钥登录远程服务器

3.使用密钥登录远程服务器示例

3.1. 生成密钥

3.2. 把公钥上传到远程服务器指定位置

3.3. 客户端向服务器发起登录请求

3.1. 生成密钥

ssh-keygen -b 位数 -t 加密算法[dsa或者rsa] -N 私钥文件的密码 -f 生成秘钥文件位置 ssh-keygen -b 4096 -t rsa -N 123 -f tenxun
# 示例 ssh-keygen -b 4096 -t rsa -N 123 -f tenxun 130 ↵ zhaowei@zhaoweideMBP # 执行命令后如下显示 Generating public/private rsa key pair. Your identification has been saved in tenxun. Your public key has been saved in tenxun.pub. +---[RSA 4096]----+ |B=O + o | |.. o . . | | | +----[SHA256]-----+

3.2. 把公钥上传到远程服务器指定位置

使用 ssh-copy-id 命令把公钥上传到服务器 ”~/.ssh/authorized_keys“ 文件中,也可以自己手动拷贝到服务器 ”~/.ssh/authorized_keys“文件中,手动拷贝记得重启服务器

# 可以不定公钥路径和.pub后缀名,ssh-copy-id 会自动在~/.ssh目录里面寻找 ssh-copy-id -i tenxun root@148.70.132.116 # 执行命令后如下显示 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "tenxun.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@148.70.132.116's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@148.70.132.116'" and check to make sure that only the key(s) you wanted were added.

3.3. 客户端向服务器发起登录请求

# 执行命令后 ssh -i./tenxun root@148.70.132.116 zhaowei@zhaoweideMBP Enter passphrase for key './tenxun': # 输入私钥密码 Last login: Sat Aug 21 07:14:35 2021 from 175.152.148.247

4.如何避免每次登录服务器每次都输入密码?

私钥设置了密码以后,每次使用都必须输入密码,烦的一批。ssh-agent 命令就是了解决每次使用都输入密码,它让用户在整个对话(session)中,只在第一次使用ssh命令时输入密码,然后把私钥保存在内存中,后面使用都不需要私钥的密码了。

第1步 运行 ssh-agent 代理命令,执行命令后会在后台运行 第2步 添加 ssh-add 私钥 第3步 再次输入 ssh 命令登录 这个时候不用输入私钥密码就直接登录成功了 ssh-agent ssh-add ~/.ssh/tenxun ssh -i ./tenxun root@148.70.132.116
ssh-agent 130 ↵ zhaowei@zhaoweideMBP # 执行命令后如下 SSH_AUTH_SOCK=/var/folders/ky/vcx6v0zs21dc4d4f4mc168jm0000gn/T//ssh-NHnCz48IVXdn/agent.52049; export SSH_AUTH_SOCK; SSH_AGENT_PID=52050; export SSH_AGENT_PID; echo Agent pid 52050;
ssh-add ~/.ssh/tenxun 1 ↵ zhaowei@zhaoweideMBP # 执行命令后如下 Enter passphrase for /Users/zhaoweijie/.ssh/tenxun: Identity added: /Users/zhaoweijie/.ssh/tenxun ()
# 再次输入命令 这个时候不用输入私钥密码就直接登录成功了 ssh -i ./tenxun root@148.70.132.116

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/175443.html

(0)
上一篇 2025-04-05 10:20
下一篇 2025-04-05 10:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信