自学内容网 自学内容网

linux命令详解,ssh服务+远程拷贝

ssh服务

ssh(Secure Shell)命令用于安全地远程登录到另一台计算机,并执行命令和传输文件。ssh 提供了加密的通信通道,确保数据传输的安全性。

ssh [选项] [用户@]主机 [命令]

常用选项

  • -V:显示 ssh 版本信息。
  • -v:增加调试信息的详细程度,最多可以使用三次(-v -v -v)。
  • -i:指定用于身份验证的私钥文件。
  • -p:指定远程主机的 SSH 服务端口(默认为 22)。
  • -l:指定登录用户名。
  • -X 或 -Y:启用 X11 转发,用于图形界面应用程序。
  • -N:不执行远程命令,仅建立连接(常用于端口转发)。
  • -f:在后台运行 ssh
  • -C:启用压缩。
  • -o:指定配置选项。
  • -L:本地端口转发。
  • -R:远程端口转发。
  • -D:动态端口转发(SOCKS 代理)。

一、启动服务

sudo systemctl start ssh  命令用于启动 SSH 服务,使得其他设备可以通过SSH协议连接到这台主机

systemctl status ssh 检测是否开启ssh服务

二、连接主机

ssh root@localhost
1. 基本用法
ssh user@hostname
  • user:远程主机的用户名。
  • hostname:远程主机的地址(可以是 IP 地址或主机名)。
2. 指定端口
ssh -p 2222 user@hostname
  • -p 2222:指定远程主机的 SSH 服务端口为 2222。
3. 使用私钥文件
ssh -i /path/to/private_key user@hostname
4. 多跳连接
ssh -t user1@host1 ssh user2@host2
  • -t:强制分配一个伪终端,用于多跳连接。
5. 代理命令
ssh -o ProxyCommand="nc %h %p" user@hostname
  • -o ProxyCommand=“nc %h %p”:使用 nc(Netcat)作为代理命令。
  • -i /path/to/private_key:指定用于身份验证的私钥文件。

三、配置文件

/etc/ssh/sshd_config

/etc/ssh/sshd_config 是 SSH 服务器(sshd)的配置文件,用于控制 SSH 服务的行为。这个文件包含了许多配置选项,可以通过编辑这些选项来调整 SSH 服务的各种行为。
image.png
Port

  • 描述:指定 SSH 服务监听的端口号。
  • 默认值:22
  • 示例
Port 2222

ListenAddress

  • 描述:指定 SSH 服务监听的 IP 地址。可以指定多个地址,每行一个。
  • 默认值:监听所有可用的 IP 地址
  • 示例
ListenAddress 0.0.0.0
ListenAddress ::1

HostKey

  • 描述:指定 SSH 服务使用的主机密钥文件。
  • 默认值:通常包括 ssh_host_rsa_keyssh_host_dsa_keyssh_host_ecdsa_key 和 ssh_host_ed25519_key
  • 示例
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

4. PermitRootLogin

  • 描述:控制是否允许 root 用户通过 SSH 登录。
  • 默认值prohibit-password
  • 可选值
    • yes:允许 root 登录
    • no:禁止 root 登录
    • without-password:允许 root 使用公钥认证登录,但不允许密码登录
    • prohibit-password:允许 root 使用公钥认证登录,但不允许密码登录
  • 示例
PermitRootLogin no

PasswordAuthentication

  • 描述:控制是否允许使用密码进行身份验证。
  • 默认值yes
  • 可选值
    • yes:允许密码认证
    • no:禁止密码认证
  • 示例
PasswordAuthentication no

ChallengeResponseAuthentication

  • 描述:控制是否允许使用挑战-响应认证机制。
  • 默认值yes
  • 可选值
    • yes:允许挑战-响应认证
    • no:禁止挑战-响应认证
  • 示例
ChallengeResponseAuthentication no

PubkeyAuthentication

  • 描述:控制是否允许使用公钥进行身份验证。
  • 默认值yes
  • 可选值
    • yes:允许公钥认证
    • no:禁止公钥认证
  • 示例
PubkeyAuthentication yes

AuthorizedKeysFile

  • 描述:指定公钥文件的位置。
  • 默认值%h/.ssh/authorized_keys
  • 示例
AuthorizedKeysFile .ssh/authorized_keys

四、客户端配置

hash knownHosts yes

在 SSH 客户端配置文件中,HashKnownHosts 选项用于控制是否对 known_hosts 文件中的主机名和 IP 地址进行哈希处理。哈希处理可以增强安全性,因为即使 known_hosts 文件被泄露,攻击者也无法直接从中获取实际的主机名或 IP 地址。

客户端配置文件

SSH 客户端的配置文件通常位于 ~/.ssh/config,每个用户可以有自己的配置文件。系统范围的配置文件位于 /etc/ssh/ssh_config

配置 HashKnownHosts

要启用 HashKnownHosts 选项,你需要在 ~/.ssh/config 文件中添加或修改相应的配置。

示例配置
  1. 打开配置文件
    nano ~/.ssh/config
    
  2. 添加或修改 HashKnownHosts 选项
    # ~/.ssh/config
    Host *
        HashKnownHosts yes
    
    • Host *:表示此配置适用于所有主机。
    • HashKnownHosts yes:启用对 known_hosts 文件中的主机名和 IP 地址进行哈希处理。
保存并应用配置
  1. 保存配置文件:编辑完配置文件后,保存并退出编辑器。
  2. 测试配置
ssh -o HashKnownHosts=yes user@hostname

你也可以直接使用 -o 选项在命令行中临时启用 HashKnownHosts

配置说明
  • HashKnownHosts yes:启用哈希处理。
  • HashKnownHosts no:禁用哈希处理(默认值)。
nano退出命令
  1. 保存更改并退出
    • 按 Ctrl + O(写入文件,即保存)。
    • 按 Enter 确认保存。
    • 按 Ctrl + X 退出 nano
  2. 不保存更改并退出
    • 按 Ctrl + X
    • 当提示是否保存修改时,按 N(不保存)。

远程拷贝,scp

scp(Secure Copy)命令用于在本地和远程主机之间安全地复制文件。scp 使用 SSH 协议进行加密传输,确保数据的安全性

scp [选项] [源文件] [目标文件]

常用选项

  • -P:指定远程主机的 SSH 服务端口(默认为 22)。
  • -p:保留文件的修改时间、访问时间和模式。
  • -q:静默模式,不显示传输进度。
  • -r:递归复制目录。
  • -C:启用压缩。
  • -i:指定用于身份验证的私钥文件。
  • -v:增加调试信息的详细程度。
示例

远程主机 1.1.1.1 上的 /home/kali/.bashrc 文件复制到本地当前目录下的 Copiedbashrc 文件

scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc
  • root@1.1.1.1:指定远程主机的用户名和 IP 地址。
    • root:远程主机的用户名。
    • 1.1.1.1:远程主机的 IP 地址。
  • /home/kali/.bashrc:远程主机上的源文件路径。
  • Copiedbashrc:本地目标文件名
    将本地文件 passwd 复制到远程主机的 /home/kali 目录下
scp -p passwd root@127.0.0.1:/home/kali/

详细解释

  • scp:命令本身,用于安全复制文件。
  • -p:保留文件的修改时间、访问时间和模式。
  • passwd:本地文件的路径。
  • root@127.0.0.1:/home/kali/:远程主机的用户名、IP 地址和目标路径。

原文地址:https://blog.csdn.net/2202_75361164/article/details/143725982

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!