FTP & SSH 方案

介绍了 FTP 和 SSH 连接的基本方法,以及配置 SSH 别名和免密登录的方法。

软件方案

在 Windows 下有 Xshell Xftp 这一套成熟的策略,仅需要用邮箱申请一下就会把下载链接发过来;这里讲的是 Mac 下的策略,FTP 用的是 FileZilla,ssh 的话 Terminal/iTerm 都可以。

FileZilla 的话可以在 https://www.filezilla.cn/download 这个中文网址下载,使用起来非常直观,没什么好讲的。

不过在之前的时候遇到过报错

响应:     SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.6
错误:     无法和 SFTP 服务器建立 FTP 连接,请选择合适的协议。
错误:     严重错误: 无法连接到服务器

因为 FileZilla 默认是采用 FTP 协议连接的,学校的服务器用的是 SFTP 协议,需要在「文件-站点管理」中新建一个站点,手动配置协议为 SFTP

SSH 设置别名

SSH 别名:在 ~/.ssh/config 下进行配置(若没有该文件,touch config 即可),一般可配置为

Host name
HostName ip
Port port
User root
IdentitiesOnly yes

第一行是别名,后面分别是服务器地址、端口和用户名,最后一行含义未知。配置完成后,在 Terminal 输入 ssh name 即可进行连接。

SSH 免密登录

接下来可以设置服务器免密连接,参考 https://tclin914.github.io/251befd7/ 。首先在自己的机器上生成 id_rsaid_rsa.pub (emm 我在 mac 下好像是 id_rsa-remote-sshid_rsa-remote-ssh.pub) ,默认放在 ~/.ssh 下;输入 ssh-keygen -t rsa 即可,注意在配置的时候不要输入密码,完成后即可在上述文件夹下看到这两个文件,这两个 key 分别是 private 和 public 的,下面需要用到 public。解释一下作用

將 id_rsa.pub的內容複製到遠端機器的 ~/.ssh/authorized_keys中,之後在登入時,便會用本地的 id_rsa 與遠端機器的 id_rsa.pub 做認證,便可免輸入密碼登入遠端機器。

下面要做的,就是把你的本地的 key 传入服务器上,也就是把 di_rsa_remote-ssh.pub 中的内容添加到服务器中的 ~/.ssh/authorized_keys 中:

  1. 优雅的方案,需要掌握一定的 linux 语法
ssh b@B mkdir -p .ssh
cat .ssh/id_rsa.pub | ssh jim@B 'cat >> .ssh/authorized_keys'

第一步建立 .ssh 文件夹,若原本有的话可以忽略;第二步写入 key,这一步的操作等价于 ssh-copy-id -i .ssh/id_rsa.pub jim@B。注意这两步都需要输入目标服务器的密码。

  1. 管道操作不太会用,所以下的第二步,我更为无脑的方案是,登录服务器之后用 vim 复制过去(当然这种偏门策略极不优雅)🤣
ssh b@B
vim ~/.ssh/authorized_keys

打开之后将本地的 di_rsa_remote-ssh.pub 中的 key 复制到上面的文件最后。

posted @ 2021-04-23 15:02  Easonshi  阅读(298)  评论(0编辑  收藏  举报