一、ssh 命令

1、命令简介

ssh 客户端,允许实现对远程系统经验证地加密安全访问。就是ssh 命令

当用户远程连接 ssh 服务器时,会复制 ssh 服务器 /etc/ssh/ssh_host*key.pub 文件中的公钥到客户机的 ~/.ssh/know_hosts 中。下次连接时,会自动匹配相对应的私钥。如果无法匹配,将拒绝连接。

2、命令解析

命令格式

ssh [options...] destination [command]

常用选项

  • -p PORT #指定远程服务器的端口,默认22

  • 通过-v #调试模式,能够追踪此次连接的过程

  • -i <file> #指定私钥文件路径,实现基于key验证

一般选项

  • -b IP #指定本地主机此次连接使用的IP,如果本地存在多个IP的话

  • -C #开启压缩

  • -F configfile #指定客户端配置文件

  • -t #强制伪终端分配,可用于在远程系统上执行基于屏幕的代码

  • -o option #以K=V格式指定选项

3、常用命令示例

登录远程主机(如果不指定用户名,默认利用当前用户名)

指定用户名登录

登录远程主机执行命令

二、scp 命令

1、命令简介

SCP(Secure Copy Protocol)是基于 SSH2 协议的安全文件传输方式,支持批量操作。应用 SSH 意味着它享有与 SSH 相同级别的数据加密,因此被认为是跨两个远程主机传输文件的安全方式。

2、命令解析

命令格式

scp [options] SRC... DEST/

常用选项

  • -r #递归复制

一般选项

  • -C #压缩数据流

  • -p #保持原文件的属性信息

  • -q #静默模式

  • -P PORT #指定远程服务器的端口,默认22

常用样式

  • 将档案复制到远程主机:scp logs.tar.gz root@10.0.0.13:/root

  • 将目录复制到远程主机:scp -r syslog root@10.0.0.13:/root

  • 将文件从远程系统复制到本地环境:scp root@10.0.0.13:/root/passwd /root/

  • 将目录从远程主机复制到本地系统:scp -r root@10.0.0.13:/root/scripts /root/

注意:scp 在传输文件的时候,目标路径必须是已存在的,否则会发生报错,导致无法传输记录

3、常用命令示例

将当前主机文件 /root/data.csv 复制到远程主机 root 的家目录下

将当前主机目录 /root/data.csv 复制到远程主机 root 的家目录下

将远程主机的记录复制到本地

将远程主机的目录复制到本地

三、sftp 命令

1、命令简介

基于 SSH 的安全文件传输协议,用于在本地主机与远程服务器之间安全地传输记录。就是sftp(Secure File Transfer Protocol)

2、命令解析

命令格式

sftp [options] username@ip

常用选项

  • -P #指定远程 SSH 端口(默认 22)

  • -i #使用指定的 SSH 私钥认证

  • -v #显示详细调试信息

交互模式常用命令

  • ls #列出远程当前目录记录

  • lls #列出本地当前目录文档

  • pwd #显示远程当前目录路径

  • lpwd #表明本地当前目录路径

  • cd 路径 #切换远程目录

  • lcd 路径 #切换本地目录

  • put 本地文件 #上传本地文件到远程当前目录

  • put -r 本地目录 #递归上传本地目录

  • get 远程文件 #下载远程文件到本地当前目录

  • get -r 远程目录 #递归下载远程目录

  • put 本地文件 远程路径 #上传到指定远程路径

  • get 远程文件 本地路径 #下载到指定本地路径

  • mkdir 目录名 #在远程创建目录

  • rm 文件名 #删除远程文件

  • rmdir 目录名 #删除远程空目录

  • rm -r 目录名 #递归删除远程目录

  • rename 旧名 新名 #远程文档或目录重命名

  • chmod 权限 文件名 #修改远程文件权限

  • help 或 ? #查看所有可用命令

  • quit 或 exit #退出 sftp 交互模式

  • !命令 #执行本地 shell 命令

3、常用命令示例

以 sftp 方式登录远程服务器

查看 sftp 主机目录和本地主机目录

上传本地资料到 sftp 主机

下载 sftp 主机文件到本地目录

进入 sftp 主机目录并删除文件

查看本地工作目录和 sftp 主机工作目录

四、ssh 免密登录

1、工作流程

SSH 免密登录基于非对称加密

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 将客户端的公钥通过 ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括 ip、用户名

  4. 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有响应的IP和用户,就会随机生成一个字符串

  5. 服务端将启用客户端拷贝过来的公钥进行加密,然后发送给客户端

  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,若是一致,就允许免密码登录

2、命令解析

在客户端生成密钥对

ssh-keygen -t rsa [-P 'password'] [-f “~/.ssh/id_rsa"]

把公钥文件传输至远程服务器对应用户的家目录

ssh-copy-id [-i [identity_file]] [user@]host

3、配置实践

在客户端生成密钥对

把公钥文件传输至远程服务器对应用户的家目录

测试效果,客户端主机无需输入密码即可登录远程主机

查看远程主机的 ~/.ssh/authorized_keys,里面记录了客户端主机的公钥

posted on 2025-09-30 16:39  lxjshuju  阅读(7)  评论(0)    收藏  举报