快捷搜索:  汽车  科技

如何配置ssh密钥登录远程服务(如何使用ssh密钥登录远程服务器)

如何配置ssh密钥登录远程服务(如何使用ssh密钥登录远程服务器)4. 服务器收到客户端的登录请求,服务端生成一个随机字符串然后使用公钥加密的结果发送给客户端,要求客户端证明自己的身份。3. 客户端向服务器发起登录请求2. 使用密钥登录远程服务器的过程原理1. 生成密钥2. 把公钥上传到远程服务器指定位置

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

1.什么是密钥?

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

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

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

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

1. 生成密钥

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

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

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

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

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

如何配置ssh密钥登录远程服务(如何使用ssh密钥登录远程服务器)(1)

如何使用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 (zhaowei@zhaoweideMBP.lan)

# 再次输入命令 这个时候不用输入私钥密码就直接登录成功了 ssh -i ./tenxun root@148.70.132.116

猜您喜欢: