Linux机器间ssh免密访问
1. ssh-keygen
在本地执行ssh-keygen
创建公钥-私钥对。
Enter passphrase (empty for no passphrase): # 输入密码, 若不输入则直接回车
注意: 密钥的文件名称必须是id_xxx, 这里的xxx就是-t参数指定的密钥类型. 比如密钥类型是rsa, 那么密钥文件名就必须是id_rsa.
当在一台机器上重新执行ssh-keygen
时,可能会对这台机器上原有的免密设置造成破坏。
2. ssh-copy-id -i ~/.ssh/id_rsa.pub root@28.33.5.99
把A的公钥发送给B
默认用法是: ssh-copy-id root@28.33.5.99
, ssh-copy-id命令连接远程服务器时的默认端口是22, 当然可以指定文件、远程主机的IP、用户和端口:
- 指定要拷贝的本地文件、远程主机的IP+用户名+端口号:
[root@localhost .ssh]$ ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@172.16.22.132
3. ssh命令
ssh命令格式如下:
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
主要参数说明:
-
-l 指定登入用户
-
-p 设置端口号
-
-f 后台运行,并推荐加上 -n 参数
-
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-
-N 不执行远程命令,只做端口转发
-
-q 安静模式,忽略一切对话和错误提示
-
-T 禁用伪终端配置
ssh 执行远程命令格式
ssh [options] [user@]host [command]
或
ssh -l user host [command]
命令行执行登录并且在目标服务器上执行命令
ssh user@remoteNode "cd /home ; ls"
例:查看远程服务器的cpu信息
ssh -l www-online 192.168.110.34 "cat /proc/cpuinfo"
参考:https://blog.csdn.net/sunny_day_day/article/details/125532797