Ssh¶
- known_hosts和authorized_keys区别
1)known_hosts 文件 作用:存储已知主机的公钥,用于验证连接的服务器身份。 功能:防止中间人攻击,确保用户连接到正确的服务器。每次连接时,SSH 客户端会检查服务器的公钥是否与 known_hosts 中的匹配。 位置:通常位于用户主目录下的 .ssh 文件夹中,路径为 ~/.ssh/known_hosts。 2)免密登录 作用:允许用户在连接到 SSH 服务器时无需输入密码。 功能:通过使用 SSH 密钥对(公钥和私钥)来实现。用户将公钥放置在目标服务器的 ~/.ssh/authorized_keys 文件中,而私钥保留在本地计算机上。连接时,SSH 客户端使用私钥进行身份验证,服务器验证公钥。 安全性:免密登录比使用密码更安全,因为私钥不会在网络上发送,并且可以使用更复杂的密钥来增强安全性。
- 设置免密
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -t rsa 指定密钥类型为 RSA。 -b 4096 指定密钥长度为 4096 位。 -C "your_email@example.com" 是一个注释,通常用来标识密钥。 ssh-copy-id username@remote_host 如果 ~/.ssh/id_rsa 文件已经存在可以使用现有的,也可以生成新的: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_new ssh-copy-id -i ~/.ssh/id_rsa_new.pub username@remote_host
- 远程执行命令
sshpass -p "user密码" ssh user@1.2.3.4 'echo "user密码"|sudo -S ls /root'