我在本地写好 shell 脚本,执行后自动登陆服务器(ssh host@ip,这个能自动登陆)
登陆后,接下来的脚本(如 cd /home)如何才能是在服务器执行而非本地.
2
mathcoder23 OP @Tink Thanks
|
3
likuku 2016-03-02 15:21:39 +08:00 1
使用不设置 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 终端。 |
4
wyce2007 2016-03-02 15:39:04 +08:00 1
如果只是自己用着做做实验的话,可以尝试使用 expect
|
5
mathcoder23 OP @likuku
@wyce2007 自动登陆我弄好了. http://be-evil.org/linux-ssh-login-without-using-password.html ssh-keygen -t rsa ssh-copy-id -i 公钥文件路径 user@server |
6
zhjits 2016-03-02 16:19:10 +08:00 1
可以用 expect 实现啊,不管输密码登录还是登录后自动执行命令。
https://blog.swineson.me/ssh-auto-password-login-with-expect/ |
7
ihciah 2016-03-02 22:36:21 +08:00 2
pwntools 也蛮方便,虽说目的不是做这个的
|