【问题标题】:ssh-copy id and expect in bashssh-copy id 并期望在 bash
【发布时间】:2012-08-14 12:05:44
【问题描述】:

我在 bash 中使用 expect 进行自动传递。代码是;

ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP (here asks pass)

VAR=$(expect -c" 
     expect "*?assword:*"
     send "$REMOTE_HOST_PASSWD\r";
     send -- "\r"
     expect eof
     ")

echo "$VAR"

它仍然询问密码。这是什么问题

已解决:ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP 必须在期望块中;

spawn ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP

和线

 send "$REMOTE_HOST_PASSWD\r";

必须

send \"$REMOTE_HOST_PASSWD\r\";

【问题讨论】:

标签: linux bash shell expect


【解决方案1】:
VAR=$(expect -c "expect '' \
  {eval spawn \
  ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP; \
  interact -o -nobuffer -re .*assword.* return; \
  send "$REMOTE_HOST_PASSWD\r"; send -- "\r"; \
  expect eof;} ")

echo "$VAR"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2017-06-11
    • 1970-01-01
    • 2020-12-20
    • 2014-10-28
    • 2018-06-30
    • 2015-10-19
    相关资源
    最近更新 更多