SFTP 자동 로그인

SFTP 자동 로그인

sftp를 사용하여 자동으로 접속하고, 같은 명령어에 비밀번호를 매개변수로 전달하여 자동으로 로그인하고 한 번 실행하는 방법을 알고 싶습니다.

예:

나는 이것을 스크립트로 작성하고 이 작업을 한 문장으로 완료하려고 합니다.

건배,

답변1

비밀번호 없는 SSH/SCP를 구현하는 방법에는 네 가지가 있습니다.

  1. 클라이언트에서 새로운 비밀번호 없는 SSH 키를 생성하고 authorized_keys서버에 추가합니다.

  2. 위와 동일하지만 scp를 실행하기 전에 키에 비밀번호를 설정하고 ssh-agent이를 사용하여 잠금을 해제합니다.

  3. scp가 실행되기 전에 SSH 연결 공유(적절하게 설정해야 할 수 있음 ControlPersist)를 사용하여 서버에 로그인하세요. scp는 동일한 연결을 재사용하며 비밀번호가 필요하지 않습니다.

  4. 비밀스러운 스크립트를 사용하여 비밀번호를 입력하지만 ssh/scp가 이를 적극적으로 차단하므로 원하는 만큼 쉽지는 않습니다.

처음 두 옵션(옵션 2가 더 안전함)을 살펴보고, Authorized_keys를 사용할 수 없는 경우 옵션 3을 살펴보는 것이 좋습니다. 이를 수행하는 방법에 대한 문서가 많이 있습니다.

옵션 4가 가능합니다(다른 사람들이 솔루션을 게시한 것을 보았습니다). 그러나 이렇게 하면 컴퓨터의 다른 사용자 및/또는 스크립트를 읽을 수 있는 모든 사람에게 비밀번호가 노출된다는 점을 명심해야 합니다. SSH 키는 루트를 제외한 모든 사용자에 의해 보호되며, 암호로 보호된 키는 루트에 의해서도 보호됩니다(Ssh-agent 해커 제외).

답변2

사용SSH 비밀번호

sshpass -p <password> sftp user@host

답변3

다음 명령을 실행하십시오.

ssh-keygen -t rsa -b 2048

그 다음에

touch ~/.ssh/config

이제 다음과 같이 구성을 편집합니다.

# host-specific options
Host enigma
    HostName mydomain.com
    Port 2547
    ServerAliveInterval 120
User YOURUSERNAME
    TCPKeepAlive Yes

지금 연결하세요

ssh-copy-id [email protected]

구성 파일의 호스트 이름을 사용하여 서버에 연결할 수 있어야 합니다. 즉ssh enigma

내 구성 파일에는 약 20개의 연결이 있으며 모두 짧은 참조이므로 매번 도메인과 비밀번호를 입력할 필요가 없습니다.

이것의 보안 결함은 다른 호스트 파일을 생성하지 않으면 모든 SSH 연결이 영향을 받는다는 것입니다. 하나의 파일에 모두 포함되어 있습니다. 비밀번호로 보호됩니다. 따라서 파일에 20개의 연결을 저장하는 경우 해당 암호가 손상되면 20개의 연결이 모두 손상됩니다.

개인용, 업무용, 기타 여러 개의 호스트 파일을 사용하고 있기 때문에 비밀번호가 유출되더라도 큰 문제는 되지 않습니다.

관련 정보