1.检查版本安装 expect -v yum install expect
2.创建一个脚本 sshtrust.sh,将以上内容写入脚本!
DEST_USER=2 HOSTS_FILE=# -ne 3 ]; then echo “Usage:” echo “{DEST_USER}” != “root” ]; then cd /home/”${DEST_USER}”/ || return fi
SSH_DIR=~/.ssh SCRIPT_PREFIX=./tmp echo ===========================
1. prepare directory .ssh
mkdir SSH_DIR
2. generat ssh key
TMP_SCRIPT=SCRIPT_PREFIX.sh { echo "#!/usr/bin/expect" echo "spawn ssh-keygen -b 1024 -t rsa" echo "expect *key*" echo "send \r" } >>TMP_SCRIPT if [ -f TMP_SCRIPT fi { echo “expect passphrase” echo “send \r” echo “expect *again:” echo “send \r” echo “interact” } >>$TMP_SCRIPT
chmod +x $TMP_SCRIPT
/usr/bin/expect TMP_SCRIPT
3. generat file authorized_keys
cat SSH_DIR/authorized_keys
4. chmod 600 for file authorized_keys
chmod 600 $SSH_DIR/authorized_keys echo ===========================
5. copy all files to other hosts
for ip in {HOSTS_FILE}”); do if [ “x{SCRIPT_PREFIX}.ip.sh # check known_hosts val=(ssh-keygen -F “val” == “x” ]; then echo “SSH_DIR/known_hosts, need to add” val={ip}” 2>/dev/null) if [ “xip failed!” else echo “SSH_DIR/known_hosts fi fi echo “copy ip” { echo ”#!/usr/bin/expect” echo “spawn scp -r DEST_USER@PASSWORD\r” echo “interact” } >“$TMP_SCRIPT”
chmod +x "$TMP_SCRIPT"
/usr/bin/expect "$TMP_SCRIPT" rm -rf "$TMP_SCRIPT" echo "copy done."fidone
6. date ssh
for ip in HOSTS_FILE”); do if [ “xip" != "x" ]; then { echo "#!/usr/bin/expect" echo "spawn ssh DEST_USER@ip date" echo "expect *yes*" echo "send yes\r" echo "interact" } >"TMP_SCRIPT”
chmod +x "$TMP_SCRIPT"
/usr/bin/expect "$TMP_SCRIPT" rm -rf "$TMP_SCRIPT" echo "copy done."fidone
3.支持多台主机进行互信,创建一个 sshhostList.cfg 文件,将需要配置互信的主机IP写入: vi sshhostList.cfg
10.211.55.100 10.211.55.101 10.211.55.102 复制
4.执行如下命令互信: sh sshtrust.sh 互信用户 互信用户密码 sshhostList.cfg
5.修改 SSH 服务的配置文件 /etc/ssh/sshd_config 。这个文件定义了 SSH 服务的配置。 AllowUsers 参数可以用来限制哪些用户被允许通过 SSH 登录到系统。在你的配置中, admin, root, oracle 和 grid 这四个用户被允许登录。 Port 参数定义了 SSH 服务监听的端口,你这里设置的是22,这是 SSH 的默认端口。 以下是如何编辑并保存 /etc/ssh/sshd_config 文件的步骤:
vi /etc/ssh/sshd_config
AllowUsers admin root oracle grid Port 22
sudo systemctl restart sshd