Linux如何使用ssh
4 SSH
通过SSH登录远程服务器
4.1 SSH登录
假设user
是用户名,hostname
是IP地址或域名,则按如下方式登录
1 | ssh user@hostname |
首次登录会提示之前未登录过这台服务器,输入yes
或直接回车会把该服务器的信息记录到~/.ssh/known_hosts
中,然后再输入密码就能登录到该服务器。若要退出,可用命令exit
SSH默认端口为22
,可显示声明服务器端口号
1 | ssh user@hostname -p 22 |
配置登录
可为ssh user@hostname
起别名,方便登录。在~/.ssh/config
中添加服务器信息
1 | Host myserver |
之后就能使用ssh myserver
登录到远程服务器。
密钥登录
首先创建密钥,输入以下命令,一直回车即可。
1 | ssh-keygen |
然后~/.ssh
下会生成两个文件
- 私钥:
id_rsa
- 公钥:
id_rsa.pub
可把公钥内容复制到远程服务器的~/.ssh/authorized_keys
中,或直接使用命令ssh-copy-id myserver
4.2 SSH命令
SSH命令方便写脚本,基本格式如下
1 | ssh user@hostname command |
command
就是shell
命令,取决于服务器是什么系统
在SSH中,单引号''
括起的表达式或命令可以直接在远程服务器执行,而双引号""
括起的表达式不能执行,只能视为字符串,这与在本地服务器不一样。
4.3 SSH传文件
为了实现两个服务器传输文件,可用命令scp
把源文件source
复制到destination
。
1 | scp source destination |
也可指定多个文件复制到destination
1 | scp source1 source2 ... destination |
如果需要复制文件夹,需要用参数-r
1 | scp -r source destination |
本地服务器可省略域名,而远程服务器需要用域名标记myserver:
,例如
1 | scp -r ~/tmp myserver:homework/ |
也可指定端口号
1 | scp -p 22 source destination |
注意,参数-p
和-r
需要在source
之前。
为了在远程服务器部署相同的环境,可以用SSH复制配置文件,例如配置vim
和tmux
。
1 | scp ~/.vimrc ~/.tmux.conf myserver: |
这里省略了destination
的目录,表示家目录home
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lzh正在写代码!
评论