运维-linux-ssh密钥认证和scp命令使用

142 阅读2分钟

1 centos系统的SSH和SCP

centOS自带scpopenssh-server

如果你的 CentOS 7 系统中没有 scp,你可以通过以下命令来安装它:

sudo yum install openssh-clients

SSH服务:两台机器上都需要安装并运行 SSH 服务。如果没有安装,可以使用以下命令安装:

sudo yum install openssh-server

安装完成后,启动 SSH 服务:

sudo systemctl start sshd

并确保 SSH 服务设置为开机自启:

sudo systemctl enable sshd

2 SSH密钥认证

2.1.生成 SSH 密钥对: 打开终端,使用以下命令生成新的 SSH 密钥对(如果已有密钥对,可以跳过此步骤):

ssh-keygen -t rsa

按照提示操作,可以设置密码(推荐),也可以直接按回车使用默认设置。

2.2.复制公钥到目标机器

方案一:

使用 ssh-copy-id 命令将公钥复制到目标机器。这个命令需要目标机器的用户名和 IP 地址:

ssh-copy-id username@destination_host

例如:ssh-copy-id root@192.168.0.4`

替换 username为目标机器上的用户名,destination_host 为目标机器的 IP 地址或主机名。

输入密码: 系统会要求你输入目标机器上对应用户的密码。

——————————————————————————————————————————

方案二:

1.如果系统中没有 ssh-copy-id 命令,你可以手动复制公钥,如下所示:

ssh username@destination_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

2.粘贴公钥: 将源机器上的公钥内容粘贴到目标机器的 ~/.ssh/authorized_keys 文件中。如果使用 ssh-copy-id 命令,这一步会自动完成。

编辑 ~/.ssh/authorized_keys 文件: 使用文本编辑器打开 ~/.ssh/authorized_keys 文件,将源机器的公钥粘贴到文件中。

3.设置正确的权限: 确保 ~/.ssh 目录和 authorized_keys 文件具有正确的权限。通常需要以下设置:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2.3 测试 SSH 密钥认证:

ssh username@destination_host

3 测试scp传输

scp /path/to/example.txt username@192.168.1.101:/home/username/documents