阅读量:0
需求:我们需要从11.0.1.17远程到11.0.1.16上执行命令
实现:
1.让11.0.1.17 可以免密登录到11.0.1.16
[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:bu287XmVZ6enpUciggpz71Q7e5kfKYqVMTcM5bDD8eU root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | o . . | | . B o | | = o E | | + | | S.+ + .| | o ...o.*...o*| | + o+ *..+o*+| | .o.= =+oo+o| | .o *++o++ | +----[SHA256]-----+ [root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub root@11.0.1.16 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub" The authenticity of host '11.0.1.16 (11.0.1.16)' can't be established. ECDSA key fingerprint is SHA256:Zedce2a7sFWF3pYJaVtedqST+SsG1zbPZ7Y4rGiEpB0. ECDSA key fingerprint is MD5:57:75:f6:6f:68:ba:b2:b8:38:0f:55:96:c9:19:d6:29. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@11.0.1.16's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@11.0.1.16'" and check to make sure that only the key(s) you wanted were added.
2.在脚本中实现我们想要的功能
[root@localhost ~]# cat test.sh #!/bin/bash ssh root@11.0.1.16 <<remotessh mkdir test ls -la test ifconfig exit remotessh [root@localhost ~]# sh test.sh Pseudo-terminal will not be allocated because stdin is not a terminal. 总用量 4 drwxr-xr-x 2 root root 6 7月 15 09:38 . dr-xr-x---. 8 root root 4096 7月 15 09:38 .. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 11.0.1.16 netmask 255.255.255.0 broadcast 11.0.1.255 inet6 fe80::20c:29ff:fe00:9681 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:00:96:81 txqueuelen 1000 (Ethernet) RX packets 95760 bytes 67679836 (64.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 45061 bytes 3990000 (3.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 24 bytes 2547 (2.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 2547 (2.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0