답변:
시험:
sftp -o "IdentityFile=keyname" jay@server.name.com
-o
에서 유효한 옵션을 전달하는 데 사용할 수 있습니다 ~/.ssh/config
.
IdentityFile
항상 자동으로 부여하는 옵션을 체크 아웃 UtahJarhead 에 넣어 대해의 대답을~/.ssh/config
기존 방법을 사용하여 PUBLIC 키를 서버에 복사하십시오.
서버에서 :
.ssh
존재하지 않는 경우 작성하십시오 .[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / authorized_keys"
그런 다음 PRIVATE 키를 사용하여 클라이언트에서 로그인 할 수 있어야합니다. 전송을 자동화하려면 실행할 명령 목록이 들어있는 텍스트 파일 인 배치 파일을 사용하려고합니다.
echo "put filename.foo /safe/path/filename.foo">> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host
또는 ssh_config 형식으로 ~ / .ssh / config 파일을 작성하여 나중에 입력하면됩니다.
sftp -b /tmp/batchfile.txt 호스트
샘플 내용 ~/.ssh/config
The_hostname 호스트 사용자 user_name IdentityFile / path / to / private_key
최근 에이 문제에 봉착했으며 맥북 기본 터미널 설정에서 다음과 같이 작동했습니다.
sftp -i ./privateFilePath.key username@url.com
보호되지 않은 개인 키 파일 로 승격 될 수 있습니다 ! 이 경우 다른 사용자가 개인 키에 액세스 할 수 없도록하려면이 명령을 실행해야합니다.
chmod 600 privateFilePath.key
경우 에 따라 명령 앞에 sudo 를 넣어야합니다 . 이는 관리자로 보호 된 디렉토리에서 작업중인 경우에만 해당됩니다
나는 그것이 도움이되기를 바랍니다 :)
-i
옵션이 작동하지 않는다고 질문했을 때 왜 이것이 도움이 될 것으로 기대 합니까?