基于SSH协议的功能实现
文章目录
除远程登录外,基于SSH协议还有一些实用的功能,这里记录一下所学到的知识点。
词语约定:大写SSH指代协议,小写ssh指代openssh实现的工具。
登录实现
基础版
通常我们登录远程主机时,方式是使用ssh打开一个远程主机的shell命令行,然后实现交互式的任务操作。但ssh工具可以在登录时直接指定提交的任务,并将标准输出指定到本地终端。这样就可以在批处理文件中实现远程计算的任务了。
|
|
密钥版
除了常规的盲打密码登录之外,还可以使用密钥登录。SSH使用非对称加密方法,即需要公钥和私钥配对使用。此时本地机子即为客户端,而远程主机为服务端。客户端需要生成密钥,并将公钥告诉服务端。参见这篇教程,介绍得非常详细。
别名版
密钥安全地解决了输入密码的繁琐步骤,但依然需要指定用户名、主机名及端口才能登录,这个步骤也可以使用别名
来规避。这里有两种解决方法,一种是取bash命令别名,另一种是取ssh主机别名。
- bash 别名很好理解,就像是我们平时使用的
ll
命令其实是ls -lh
一样,使用alias
来重命名一长串的固定命令。具体为执行:
alias new_name='ssh -p 22 username@host'
- ssh工具允许用户编辑 ~/.ssh/config 来指定主机别名,下面举一个例子,详细地使用方法可自行百度之。
下面的id_ed25519路径指的是密钥文件在本地的文件路径。
|
|
文件传输
这个指的当然就是sftp工具了。Cinnamon桌面自带的Nemo文件管理器使用sftp完成了远程的文件管理,并使得与管理本地文件无差别的体验。