远程Linux服务器的常规方式为使用xshellputty等,通过可视化界面输入并记住账号、密码/密钥文件的方式登录远程服务器。但更推荐使用本机自带的shell来远程服务器,因为该方式: ✅ 不依赖第三方软件(xshell需要购买授权);✅ 同样支持免密登录

说明

变量使用 {} 包裹,真实环境需要根据实际情况进行修改!

本机操作

  • 生成ssh key公钥
ssh-keygen -t rsa -C "{email@example.com}"

上述命令会在本机~/.ssh目录下生成id_rsaid_rsa.pub两个文件

cat ~/.ssh/id_rsa.pub

复制本机公钥到服务器白名单中

本机公钥生成后,可手动粘贴到服务器上或者使用ssh-copy-id命令自动配置远程服务器

cat ~/.ssh/id_rsa.pub     #本机查看公钥
vi ~/.ssh/authorized_keys #将上述公钥粘贴到服务器白名单配置文件中
ssh-copy-id [OPTIONS] {username}@{ipHost}

自动配置后提示如下图所示表示配置成功并可以开始免密登陆

自动配置验证

免密登录远程服务器

远程命令

ssh {username}@{ipHost}

别名配置

实现免密登陆后,当有多台服务器需要运维的时候,建议使用别名来管理多服务器远程(使用ssh用户配置文件管理服务器远程会话)

说明

  • 用户配置文件: ~/.ssh/config
  • 系统配置文件: /etc/ssh/ssh_config

常用的配置项说明及示例

Host                     #别名
HostName                 #主机名
Port                     #端口
User                     #用户名
IdentityFile             #密钥文件路径
IdentitiesOnly           #只接受ssh key登录
PreferedAuthentications  #强制使用public key验证
Host {custom alias}
  HostName {ip}
  User {username}
  IdentityFile ~/.ssh/id_rsa

别名远程

ssh {custom alias}

别名远程文件管理

sftp {custom alias}
scp /local/path/to/files.extension {username}@{custom alias}:/remote/path # 单个本地文件复制到远程服务器
scp -r /local/path/ {username}@{custom alias}:/remote/path/ #本地目录复制到远程服务器

说明

  • sftp文件传输功能更多,且支持断点续传,通过getput关键词命令实现本地下载远程文件以及本地上传文件到服务器;
  • sftp交互终端可通过pwdlpwd查看服务器和本地当前目录、通过cdlcd切换服务器和本地当前目录(如果本地和服务器都切换到对应的目录,只需要get文件名或put文件名即可)
  • scp相比sftp更轻量,无需调出交互终端再次输入getput命令
最近修改时间: