vscode SSH 生存暗码主动登录服务器vs code

打印 上一主题 下一主题

主题 538|帖子 538|积分 1616

先在win local /mac 上拿到公钥和私钥,然后再把这公钥copy 进服务器。让ssh 身份认证转化为秘钥认证
(mac也是一样的)
1. 创建 RSA 密钥对

第一步是在客户端机器(通常是您的计算机 win 10)上创建密钥对:打开powershell, 输入
  1. ssh-keygen
复制代码
默认情况下ssh-keygen
将创建一个 2048 位 RSA 密钥对,这对于大多数用例来说足够安全(您可以选择传入标志-b 4096以创建更大的 4096 位密钥)。
输入命令后,您应该看到以下输出:
Output
  1. Generating public/private rsa key pair.
  2. Enter file in which to save the key (C:\Users\admin\.ssh/id_rsa):
复制代码
根据括号的路径,将其键入前面部门,将密钥对生存到C:\Users\admin\.ssh/主目录的子目录中(或指定备用路径)。
如果您之宿世成过 SSH 密钥对,您可能会看到以下提示:
Output
  1. /home/your_home/.ssh/id_rsa already exists.
  2. Overwrite (y/n)?
复制代码
如果您选择覆盖磁盘上的密钥,您将无法再利用以前的密钥进行身份验证。选择是时要非常警惕,由于这是一个无法逆转的破坏性过程。
然后您应该会看到以下提示:
Output
  1. Enter passphrase (empty for no passphrase):
复制代码
为了方便,是可以不用加暗码的,直接Enter 就行。也可以选择输入安全暗码,(暗码短语添加了额外的安全层,以防止未经授权的用户登录)。
然后您应该看到以下输出:
Output
  1. Your identification has been saved in /your_home/.ssh/id_rsa.
  2. Your public key has been saved in /your_home/.ssh/id_rsa.pub.
  3. The key fingerprint is:
  4. a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
  5. The key's randomart image is:
  6. +--[ RSA 2048]----+
  7. |     ..o         |
  8. |   E o= .        |
  9. |    o. o         |
  10. |        ..       |
  11. |      ..S        |
  12. |     o o.        |
  13. |   =o.+.         |
  14. |. =++..          |
  15. |o=++.            |
  16. +-----------------+
复制代码
您现在在本地~/.ssh 下就会拥有可用于身份验证的公钥(id_rsa.pub)私钥(id_rsa)

下一步是将公钥(id_rsa.pub)放在您的服务器上,以便您可以利用基于 SSH 密钥的身份验证来登录。


  • 如果还有其他设备,比如 mac, 那么直接将这个**私钥(id_rsa)**放进对应的~/.ssh 下就可以直接用了。
2. 手动复制公钥

如果您没有基于暗码的 SSH 访问服务器的可用权限,则必须手动完成上述过程。
目标:我们将手动将您的id_rsa.pub (公钥)文件内容附加到远程服务器上~/.ssh/authorized_keys的文件中。
要表现密钥的内容id_rsa.pub,请在本地计算机中键入:(或者直接用记事本打开也行,)
  1. cat ~/.ssh/id_rsa.pub
复制代码
您将看到密钥的内容,看起来应该是这样的:
Output
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
复制代码

  • 利用可用的任何方法访问远程主机,并找到或者创建目录 ~/.ssh
一旦您可以访问您在远程服务器上的帐户,您应该确保远程服务器的~/.ssh目录存在。
此命令将在必要时创建目录,如果目录已存在,则不执行任何操纵:
  1. mkdir -p ~/.ssh
复制代码

  • 在此目录中创建或修改文件authorized_keys, 为了加入id_rsa.pub 到authorized_keys
    现在,您可以在此目录中创建或修改文件authorized_keys。您可以将文件的内容添加id_rsa.pub到authorized_keys文件的末尾,必要时利用以下命令创建它:
  1. cat id_rsa.pub>> ~/.ssh/authorized_keys
复制代码
>> 是追加的意思
在上述命令中,将id_rsa.pub内容输出追加到~/.ssh/authorized_keys。

  • 查看authorized_keys 是否加入了id_rsa.pub
    cat ~/.ssh/authorized_keys
    得到的应该是跟上面一样的一串笔墨
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
复制代码
最后,我们将确保~/.ssh目录和authorized_keys文件具有适当的权限集:
  1. chmod -R go= ~/.ssh
复制代码
这递归地删除目录的全部“组”和“其他”权限~/.ssh/。
直接ssh命令登录

ssh 是怎么找到秘钥 id-rsa 的?
事实上,ssh xxx@11.11.11.01
的时候,其中有指定的命令–identity_file, 也就是身份认证,默认会在本地路径~/.ssh/优先找秘钥id-rsa,作为认证方式,找不到就让你输入暗码。
直接登录
  1. ssh xxx@11.11.11.01
复制代码
如果前面 Enter passphrase阶段有写暗码,那么接下来输入的暗码就是这个用于掩护秘钥的暗码。
如果前面Enter passphrase阶段暗码为空,那么就直接登录上去了。
vscode 利用 ssh密钥 (key) 来毗连到远程Linux上

添加设置文件
目标:设置 VSCode 毗连远程服务器的一些基本信息。
1、点击左侧的 “远程资源管理器” 图标,点击右上角的小齿轮(设置)

2、在弹出来的窗口中,选择第一个 config 文件打开,参考下图,填写对应信息
加入设置:IdentityFile ~\.ssh\id_rsa生存即可
  1. # Read more about SSH config files: https://linux.die.net/man/5/ssh_config
  2. Host test1
  3.     HostName 11.11.11.11
  4.     User xxx
  5.     Port 22
  6.     IdentityFile ~/.ssh/id_rsa
  7.     ForwardAgent yes
  8. # 有需要可以加 第二个服务器
  9. Host test2
  10.     HostName 11.11.11.12
  11.     User xxx
  12.     Port 22
  13.     IdentityFile ~/.ssh/id_rsa
  14.     ForwardAgent yes
复制代码

3.重启vscode,就可以在remote ,输入服务器暗码,就可以在remote Explorer 下的SSH 下看到你设置的服务器名称了。右键选择毗连就可以。

秘钥:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-debian-9
vscode 设置: https://blog.csdn.net/surfirst/article/details/114311394

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表