Linux FTP 사용자 이름 및 비밀번호로 로그인


23

한 줄로 FTP로 로그인하는 명령은 무엇입니까?

ftp username:password@my.domain.com

말한다 :

username : password에 필요한 비밀번호


2
man ftp찾거나을 사용하십시오 ftp --help. ftp다른 유틸리티를 의미 할 수도 있음을 잊지 마십시오 ....
Basile Starynkevitch

2
ftp ftp://username:password@my.domain.com

1
또한 주어진 프로세스의 명령 줄은 시스템의 다른 모든 사용자에게 표시됩니다. 따라서 암호를 명령 줄의 일부로 제공하면 심각한 보안 문제가 될 수 있습니다.

답변:


8
ftp -nv yourftpserver.com

그때 user your_username 또는user anonymous


나는 ftp ftp://username:password@my.domain.com나를 위해 효과가 없었기 때문에이 답변을 게시했습니다 .

Usage: { ftp | pftp } [-46pinegvtd] [hostname]
   -4: use IPv4 addresses only
   -6: use IPv6, nothing else
   -p: enable passive mode (default for pftp)
   -i: turn off prompting during mget
   -n: inhibit auto-login
   -e: disable readline support, if present
   -g: disable filename globbing
   -v: verbose mode
   -t: enable packet tracing [nonfunctional]
   -d: enable debugging

2
대화식 사용이 필요하므로 유용하지 않습니다. 'ftp user @ yourserver'만 입력해도됩니다.
smaudet

3
이 질문에 대답하지 않습니다
phil294

7
ftp ftp://username:password@my.domain.com

ftp --help그래도 쉽게 사용할 수 있습니다 .


25
표시된 명령은 "이름 또는 서비스를 알 수 없음"을 생성합니다. ftp -help는 ftp :, // 또는 username : password @와 같은 것을 생성하지 않습니다.
CW Holeman II

4
어떤 Linux 버전을 사용하고 있습니까? 위의 구문을 시도하면 "이름 또는 서비스를 알 수 없습니다"라는 메시지가 나타납니다. CentOS 6을 사용하고 있습니다.
Tim Ludwinski

7
이름이나 서비스도 알려지지 않음
Kevin Johnson

6
나를 위해 작동하지 않습니다, 우분투 원격 서버에서
391339

6
나는 또한 ftp -help 도움이되지 않는 것을 발견 하고 당신이 제안하는 형식은 우분투 16에서 나에게 적합하지 않습니다.
Henry

3

가장 좋은 방법은 보안 목적으로 .netrc 와 gpg와 같은 것을 사용하는 것입니다.

나는 이것을 위해 범용 스크립트를 작성했다. 나중에 업로드 할 수 있지만 다음과 같이 요약된다.

gpg -c .netrc

또는 선택적으로 명령 행에 비밀번호 문구와 출력 대상이 있습니다.

gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc

여기에 표시되어 있지 않지만 gpg와 함께 비대칭 키 (설정된 경우)를 추가로 사용하여 더욱 안전하게 만들 수 있습니다.

그런 다음 로그인 할 준비가되면

gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc

.netrc의 예 :

machine google.com
login <username>
password <secretpassword>

실제로 로컬 해시 와이 파일의 원본 복사본을 .netrc 파일을 사용하는 컴퓨터와 다른 컴퓨터에 보관하고 .netrc와 내가 실행하는 스크립트의 해시를 확인하지만 그 이상입니다. OP의 원래 질문을 넘어서.


(1) 단일 명령 줄 내의 사용자 자격 증명이 셸 기록 => 보안 문제에 저장됩니다. (2) .netrc는 gpg => 보안 문제없이 작동합니다. 또한 .netrc 파일에 올바른 권한이 있는지 확인하십시오. chmod 600 .netrc(3) 해독, ftp 호출 및 해독 된 .netrc 제거를위한 랩퍼로서의 쉘 기능이 도움이 될 것입니다. 좋은 답변 감사합니다!
수학

따라서 FTP 비밀번호 대신 사용자가 GPG 비밀번호 문구를 입력해야합니까? 또한 공격자가 개인 파일에 대한 쓰기 권한을 가지고 있다면 자격 증명을 사용하는 즉시 자격 증명을 공개 할 수있는 방법이 많이 있습니다. 이 시나리오에서 GPG는 실제로 읽기 전용 액세스 권한을 가진 공격자에게만 도움이됩니다. 정말 희귀 한 것 같아요?
Konrad

1

netrc 사용하십시오 . 명령 행에서 암호를 제공하는 것보다 낫습니다.


이 답변은 음수 점수를받을 자격이 없습니다 (수행 방법에 대한 예가 부족하더라도).
Peter Mortensen

나는 동의한다. 그러나 아무도 이것을 바꾸지 않았다 (그리고 나는 그것을 downvote하지 않았다).
smaudet

0

당신은 시도 할 수 있습니다

my_ftp() {
  ftp -i -n <<EOF
    open $HOST
    user "$USER" "$PASS"
    $@
EOF
}

그런 다음 전화를 걸 수 있습니다 my_ftp $'ls subfolder\nanothercommand'

이 솔루션은 대화식이 아니지만 알아낼 수있는 최선입니다

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