我在本地写好 shell 脚本,执行后自动登陆服务器(ssh [email protected],这个能自动登陆)
登陆后,接下来的脚本(如 cd /home)如何才能是在服务器执行而非本地.
ssh [email&bash < /path/to/local/script.sh
Thanks
使用不设置 passphrase 的 ssh-public/private key 对登录。
目标服务器上的 ssh-public key 里可以写入一条 shell 指令,使用此 key 登录目标服务器即执行 public-key 内的 shell 指令。
比如:
command="/bin/bash /home/test/some.sh" ssh-rsa AAAA......ssh-public-rsa-key 内容
注意,如此这般,登录这么设置的服务器,这对密钥就只能用来执行这条指令,不能 login 获得一个交互式 shell 终端。
如果只是自己用着做做实验的话,可以尝试使用 expect
自动登陆我弄好了.
http://be-evil.org/linux-ssh-login-without-using-password.html
ssh-keygen -t rsa
ssh-copy-id -i 公钥文件路径 [email protected]
可以用 expect 实现啊,不管输密码登录还是登录后自动执行命令。
https://blog.swineson.me/ssh-auto-password-login-with-expect/
pwntools 也蛮方便,虽说目的不是做这个的