키 파일을 매개 변수로 사용하여 가능한 경우 어떻게 할 수 있습니까?


51
scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

위에서 언급 한 스크립트가 올바르지 않습니까? 내가 제대로하지 않습니까?

.ssh디렉토리로 가서 원격 서버가 known_hosts파일 에 있음을 알았습니다 .

그러나 매개 변수로 파일없이 일반 scp를 수행 할 때 여전히 암호를 요구합니다.

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

명령에 키 파일을 어떻게 포함시킬 수 있습니까?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj

답변:


66
 -i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read.  This option is directly passed to
         ssh(1).

사용하십시오 ~/.ssh/id_rsa.


여전히 비밀번호를 sh-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner 이상합니다. 저에게 효과적입니다
whitequark

2
~ 대신 / home / user /에서와 같이 실제 경로를 사용해야 할 수도 있습니다. 그것은 나를 위해 일한 것처럼 보였습니다.
에반 다윈

1
로컬 사용자의 ~ / .ssh / id_rsa.pub 컨텐츠를 원격 서버의 authorized_keys 파일에 배치하려고합니다. 일반적으로 ~ / .ssh / authorized_keys에 있습니다. ~ / .ssh의 파일에 대한 파일 권한에 대해 매우 구체적이어야하며, 최소한의 액세스가 가능해야합니다. sshd는 파일 권한에 대해 매우 구체적입니다.
JR Lawhorne

Mac OS X -i ~/.ssh/id_rsa에서는 첫 번째 옵션 인 경우에만 작동했습니다 . 그래서 이것은 효과가 있었다 : scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. 이것은 작동하지 않았다 :scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

이것은 또 다른 멍청한 놈을 도울 수 있습니다.

[이것은 중복 된 순환 예이지만 설명하기에 좋습니다] 시나리오 :

  1. Mac에서 ssh-> 우분투
  2. 맥에서 scp 파일-> 우분투
  3. 우분투-> Mac에서 ssh 및 scp 파일을 닫습니다.

나는 내 Mac에서 ssh 키를 만들었고 (ssh-keygen을 통해) 우분투를 실행하는 컴퓨터 (ssh-copy-id)를 통해 공유했습니다. 그래서 우분투를 실행하는 컴퓨터에서 Mac에 로그인 한 상태에서 파일을 복사 할 수 있었지만 다른 방법으로는 할 수 없었습니다.

솔루션 : Ubuntu Machine에서 ssh 키를 만들어 내 Mac과 공유해야했습니다. 그런 다음 우분투 머신에서 다음 명령을 성공적으로 실행할 수 있습니다

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

Mac에서

ssh-keygen
ssh-copy-id ubuntu@192.168.1.38

ssh ubuntu@192.168.1.38

# Now on Ubuntu
ssh-keygen
ssh-copy-id MAC@192.168.1.40

이제 다음 명령은 암호를 묻지 않고 파일을 MAC에 복사해야합니다.

sudo scp -i /home/ubuntu/.ssh/id_rsa MAC@192.168.1.40:~/Documents/Fluff/Version-Control/tools/pull.sh .

0

다음 지침을 통해 테스트하고 수정했습니다 : https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

상자 (CentOS / CentOS)에서 테스트했을 때의 지침은 완벽하게 작동했습니다. 문제는 ssh 키가 사용자 이름에 묶여 있지 않다고 생각합니다.

예 : 나는 / scpin '를 sshing있어 상자에 고양이의 authorized_keys #하는 SSH를-RSA BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v my_user@machine.local #username 키에 연결하고 있습니다 승인 된 호스트

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.