ssh 免密登陆

摘要:在本地生成公钥私钥对,并将公钥上传至 server 端实现免密登陆。

1. 使用 ssh-keygen 生成密钥

ssh-keygen -t rsa -f filename
  • -t 指定加密方式,一般有 rsa 和 dsa 两种
  • -f 指定文件名,无需写后缀

在生成密钥对时, 会要求输入 passphrase

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):

这里有两个选项:
* empty:直接回车,设置 passphrase 为空,之后在登陆 server 时也无需输入 passphrase
* not empty: 设置 passphrase,但需注意的是,以后每次在登陆 server 时都需输入 passphrase。

由于出于登陆方便的想法,本文在配置过程中设置为 empty。

2. 使用 ssh-copy-id 将公钥上传到 server

ssh-copy-id -i filename.pub user@remotehost

这一步中会自动的将公钥文件上传到 server端~/.ssh/authorized_keys 文件中,若无此文件,将创建并写入。

在执行过程中需要输入 server user password 验证身份

3. 多个 server 可以使用同一对密钥

公钥私钥只是用来验证用户身份,在不同 server 上可以使用相同的密钥,无需单独设置。(同样的,你要想单独设置也没问题)

4. Control Master

Control Master 的原理是在建立了 ssh 链接之后,将该 socket 保存,等再需 ssh 到同样的主机时,直接调用该 socket 文件,不用再创建新的链接。

这种方法好处在于方便,ssh scp 操作速度特别快。缺点在于,当机器重启或者网络断掉时 socket 失效,需要重新登陆。

所以在本文中 control master 配合密钥使用,登录时无需密码,短时内从新登陆或 scp 速度非常快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 VS Code 中使用 SSH 免密登录,你可以按照以下步骤进行设置: 1. 生成 SSH 密钥对:在终端中使用 `ssh-keygen` 命令生成 SSH 密钥对。你可以选择使用默认的密钥保存路径和文件名,或者自定义路径和文件名。 2. 将公钥添加到远程服务器:使用 `ssh-copy-id` 命令将生成的公钥添加到你希望无密码登录的远程服务器。例如,`ssh-copy-id user@hostname`,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址。 3. 在 VS Code 中安装 SSH 扩展:打开 VS Code,点击左侧的扩展图标,搜索并安装 "Remote - SSH" 扩展。 4. 连接到远程服务器:点击左下角的 "Remote Explorer" 图标,选择 "SSH Targets",然后点击 "+" 添加一个新的 SSH 目标。 5. 配置 SSH 目标:在弹出的输入框中,输入格式为 `[user@]hostname[:port]` 的目标,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址,`port` 是可选的远程服务器 SSH 端口号。例如,`user@hostname` 或 `user@hostname:port`。然后,选择之前生成的私钥文件。 6. 连接到远程服务器:点击刚刚创建的 SSH 目标,VS Code 会自动连接到远程服务器。你可能需要输入远程服务器的密码一次,之后就可以无密码登录了。 这样,你就可以在 VS Code 中无需每次输入密码就能通过 SSH 连接到远程服务器了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值