두 네트워크 스위치 간에 파일을 전송하려고 합니다.
토폴로지:
스위치 A------스위치 B (10.219.20.209)
내가 시도한 단계는 다음과 같습니다.
다음 명령을 사용하여 SwitchA에서 공개 SSH 키를 생성합니다.
ssh-keygen -t rsa
다음 명령을 사용하여 새로 생성된 키를 SwitchA에서 SwitchB로 복사합니다.
scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/id_rsa.pub
이제 파일 전송을 시도하지만 여전히 자격 증명을 요구합니다.
root@RE:0% scp test.sh [email protected]:/tmp/
Password:
비밀번호를 사용하지 않고 파일을 전송하는 방법을 제안해주세요.
답변1
Juniper 스위치에는 고유한 구문이 있다고 생각합니다.인증 구성.
구문은 다음과 같습니다.
authentication {
(encrypted-password "password" | plain-text-password);
load-key-file URL filename;
no-public-keys;
ssh-dsa "public-key";
ssh-ecdsa "public-key";
ssh-rsa "public-key";
}
답변2
#!/usr/bin/expect --
set arg1 [lindex $argv 0]
set arg2 [lindex $argv 1]
set DATE [exec date +%Y_%m_%d-%H.%M.%S]
spawn echo $DATE
spawn ssh $arg1 -l root
expect {
"*(yes/no)*" { send "yes\r" }
"Password:" { send "Juniper\r" }
}
expect {
"Password:" { send "Juniper\r" }
"*@*" {send " \r" }
}
set FILE $arg2
append FILE "_"
append FILE $DATE
send "cd /var/tmp/; cp $arg2 $FILE ; echo \"\" > NH-HALP.log \r"
expect "*@*"
send "scp \"$FILE\" [email protected]:/var/tmp/\r"
expect {
"*(yes/no)*" { send "yes\r" }
"Password:" { send "Juniper\r" }
}
expect {
"Password:" { send "Juniper\r" }
"*@*" {send " \r" }
}
답변3
2단계: 사용ssh-copy-id [email protected]
/root/.ssh
또한 10.219.20.209에 대한 권한을 확인하세요. 그들은 이어야 합니다 drwx------
.