SHH 连接远程服务器 (针对 Windows 用户)

  • SHH 连接远程服务器 (针对 Windows 用户)已关闭评论
  • 173 次浏览
  • A+
所属分类:linux技术
摘要

打开刚刚下载的 Putty package 中的 puttygen
点击 “Actions” 下的 Generate button. 随意的移动鼠标指针来生成 key.


1. Putty (Windows)

1.1 连接服务器

  1. 下载 Putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  2. 打开 Putty
  3. 在 "Host Name" 下输入地址, 格式为 <username>@xxx.xxx.xxx
  4. 点击 Open
  5. 第一次连接时可能会询问是否信任连接, 选 yes
  6. 终端打开后, 会提示你输入密码. 输入时无法看到内容, 确认无误后按下回车即可.

1.2 免密码连接服务器

  1. 打开刚刚下载的 Putty package 中的 puttygen
    SHH 连接远程服务器 (针对 Windows 用户)

  2. 点击 "Actions" 下的 Generate button. 随意的移动鼠标指针来生成 key.

  3. 保存 "ssh-rsa xxxxxx" 一长串的字符串 (public key), 后续会用到.

  4. 点击 Save private key button, 输入文件名.

  5. 退出 puttygen

  6. 打开 putty
    SHH 连接远程服务器 (针对 Windows 用户)

  7. go to "Connection->SSH->Auth", 点击Browse button, 找到第4步存的private key.

  8. 返回 "Session", 在 "Host Name" 下输入地址

  9. 在 "Saved Sessions" 下输入一个名字(比如: server001), 点击 save

  10. 点击 open

  11. 终端打开, 提示输入密码

  12. 输入命令: ssh-keygen -b 2048 -t rsa, 询问地址时直接按回车, 询问密码时也直接按回车

  13. 输入命令:
    echo "" >> ~/.ssh/authorized_keys
    echo "ssh-rsa blablabla" >> ~/.ssh/authorized_keys
    替换第3步保存的"ssh-rsa xxxxxx" public key.

  14. 重启 putty, 在 "Saved Sessions" 下选择 server001, 点击 Load, 点击 Open.

2. MobaXterm(Windows)

相比于 Putty, MobaXterm 提供了更友好方便的界面.

2.1 连接服务器

  1. 如果你已经用Putty连接过服务器, 此时 MobaXterm左侧会自动生成一个 "PuTTY sessions" 和 "server001", 此时点击它并输入密码即可;
    否则, 创建一个session, 点击左上角的 "Session", 选择"SSH", 在 "Remote host" 中输入地址 <username>@xxx.xxx.xxx, 点击 OK button.

  2. 成功登陆后会提示是否保存密码, 免去了上述 1.2 中繁琐的免密码操作, 十分便捷.

2.2 更改终端打开时的默认路径

每次成功连接服务器后, 此时终端的当前路径往往不是你想使用的, 每次都需要 cd 到自己的文件夹下很麻烦, 可以修改默认路径来解决这个问题:

  1. 连接服务器, 在终端中输入 vim ~/.bash_profile 打开configuration file
  2. 在这个文件中添加一条cd命令, 后接你的项目文件夹路径
    SHH 连接远程服务器 (针对 Windows 用户)
  3. 按 Esc, 输入 :wq 退出 vim
    SHH 连接远程服务器 (针对 Windows 用户)
  4. 再次运行 .bash_profile 文件: source ~/.bash_profile
  5. 重启终端, 输入 pwd 检查你的当前路径.

3. VS Code

VS Code 连接远程服务器后, 可以直接在 VS Code 上修改和运行代码, 很方便, 接下来介绍如何使用VS Code连接服务器和如何免密码连接.

3.1 连接服务器

  1. 点击左侧边栏内的 "Extensions" (or 按下快捷键 "Ctrl+Shift+X") , 输入搜索"Remote Development", 点击 "install" button 进行安装.
    SHH 连接远程服务器 (针对 Windows 用户)

图1

  1. 成功安装后, 左侧边栏会多出一个 "Remote Explorer" 图标, 点击齿轮图案的 Config button
    SHH 连接远程服务器 (针对 Windows 用户)
  2. 选择第一个文件, 填写你的服务器信息:
    SHH 连接远程服务器 (针对 Windows 用户)
    这里的 HostName 就是前面 1.1 节第3步中的 Host Name <username>@xxx.xxx.xxx 中 @ 符号后的内容(xxx.xxx.xxx), User 就是 @ 符号前的内容( <username> ).
  3. 保存配置文件, 此时左侧会出现刚刚创建的机器, 如上面的图1中的 "compute_Canada".
  4. 更改设置, 依次选择 "File->Preferences->Settings->Extension->Remote-SSH", 搜索找到 "Show Login Terminal" 并勾选.
  5. 点击 "compute_Canada" 右侧的 Connect button
  6. 选择你的服务器平台类型"Linux/ Windows/macOS"
  7. 输入密码
  8. 连接成功后, 点击右侧的 + button 打开一个新的终端窗口.
    SHH 连接远程服务器 (针对 Windows 用户)
  9. 在左侧可以打开服务器的文件夹, 依次选择你的文件路径, 点击 ok
  10. 此时在终端中输入 pwd, 可以看到当前路径已经定位到了刚刚打开的文件夹处. 返回刚刚进行连接服务器的窗口, 在 "compute_Canada" 下给出了刚刚打开的文件夹, 下次可以直接点击这个文件夹进行连接, 这样就省去了 2.2 小节中更改默认路径的操作.

3.2 免密码连接服务器

每次连接都需要输入密码很麻烦, 接下来介绍如何免密码连接:

  1. 在自己的电脑上打开 cmd

  2. 输入命令 ssh-keygen -t rsa -C "<username>@xxx.xxx.xxx" 引号部分是你的地址, 回车

  3. 此时会依次询问你: 1) 将 key 保存在什么目录? 直接回车, 保存于它提供的默认路径(C:Usersxxx/.ssh/id_rsa); 2) 如果已存在这个文件, 会询问是否 overwrite? 输入y, 进行覆盖; 3) 请求输入密码, 直接回车, 空密码(两次).

  4. 终端显示你的 identification 和 public key 已保存在 C:Usersxxx/.ssh处, 进入这个文件夹可以看到有两个新增的文件 id_rsa 和 id_rsa.pub:
    SHH 连接远程服务器 (针对 Windows 用户)

  5. 打开服务器的终端, 输入 ssh-keygen -b 2048 -t rsa (与1.2节第12步一样), 询问地址时直接按回车, 询问密码时也直接按回车, 若询问是否 overwrite 输入 y. 终端显示你的 identification 和 public key 已保存在 xxx/xxx/.ssh处

  6. 使用 cd 命令切换到这个文件夹, 这个文件夹中有三个文件: authorized_keys id_rsa id_rsa.pub

  7. 在你的电脑上, 打开你刚刚在第4步中创建的 id_rsa.pub 文件(即图中标为 public key 的文件), 复制文件中的内容("ssh-rsa xxxxxx" 形式的一长串字符串)

  8. 在服务器的终端上输入命令 vim authorized_keys, 将第7步复制的内容粘贴到 authorized_keys 文件中, 检查无误后按 Esc, 输入 :wq 退出 vim.

  9. 回到你的vs code, 在 3.1 节 第3步提到的 config 文件中添加 IdentityFile "C:Usersxxx.sshid_rsa", 即上述第4步提到的private key文件, 然后进行保存.
    SHH 连接远程服务器 (针对 Windows 用户)

  10. 重启vs code, 重新连接服务器, 可以发现无需密码即可连接成功.