Server1에서 이 명령을 사용합니다.
~# ssh root@Server2 /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
Server2의 내용을 Server1의 내용 id_rsa.pub
에 추가합니다.authorized_keys
수동으로 실행하지만 예상 스크립트에서 실행하면 작동합니다.
#!/usr/bin/expect
set timeout 60
spawn ssh root@[lindex $argv 0] cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
expect "yes/no" { send "yes\r"
expect "*?assword" { send "[lindex $argv 1]\r" }
} "*?assword" { send "[lindex $argv 1]\r" }
interact
이 스크립트를 사용하면 id_rsa.pub
Server2가 authorized_keys
Server2에 연결됩니다.
올바른 구문은 무엇입니까?
답변1
예상은 쉘이 아니므로 >>
해석하는 대신 ssh에 인수로 전달됩니다.
노력하다spawn bash -c "ssh root@[lindex $argv 0] cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"