저는 Mac Book Pro(foo라는 이름)에서 작업합니다. 클라이언트가 대용량 파일을 전송하는 서버가 있습니다. (바라고 불림) 나는 종종 바에 ssh를 접속한 다음 파일(버즈라고 함)을 내 Mac으로 scp합니다.
bob@foo$ ssh bar
Last login: Fri Aug 23 14:49:32 2013 from foo
bob@bar$ scp /guest/buzz bob@foo:~
Password:
파일을 Mac으로 다시 scp할 때마다 비밀번호를 입력하고 싶지 않습니다. 왜냐하면 자동으로 비밀번호를 입력하게 되기 때문입니다.
나는 나 자신을 안다할 수 있다bar
SSH 키를 설정했지만 누군가 가 키를 크랙하면 쉽게 액세스할 수 있을지 걱정됩니다 foo
(틀렸다면 정정해 주세요).
서버가 손상된 경우 암호 없이 누군가에게 내 Mac에 대한 전체 쉘 액세스 권한을 부여하지 않고 bar에서 foo로 파일을 복사할 수 있는 방법이 있습니까?
참고: 내 Mac에 새 사용자를 설정하고 해당 사용자의 셸 액세스를 비활성화하는 것을 고려 중입니다.가능한작동하지만 더 좋은 방법이 있다고 생각합니다. 가능하다면 사용자를 추가하지 않는 것이 좋습니다.
답변1
글쎄, 당신은 엉망이었어.
내가 이해한 바에 따르면, 당신은 단지 파일을 복사하고 싶어할 뿐입니다.술집도착하다부자:
[file] *bar* ------copy------> *foo*
이를 위해서는 먼저 ssh
해야 할 일술집그런 다음 scp
파일을부자:
*bar* -------ssh------> *foo* [file]
그 다음에:
*foo* ----scp[file]---> *bar*
이렇게 하면 이렇게 된다안전하지 않고 잘못된 것. 당신이 해야 할 일은 파일을 직접 scp하여 다시 당신에게 보내는 것뿐입니다:
bob@foo$ scp bob@bar:/guest/buzz ~
다시 말해서:
*foo* <---scp[file]---- *bar*
이제 해결해야 할 몇 가지 문제가 있습니다.
파일이 어디에 있는지 어떻게 알 수 있나요?
a) 다른 터미널에서 SSH 사용
두 번째 터미널을 열고 SSH를 실행하세요.술집, 파일을 찾아 첫 번째 파일의 경로를 복사/붙여넣기하세요.
b) SFTP를 사용하세요
SFTP(FTP 또는 FTPS와는 무관!)는 OpenSSH에서 구현되며 기본적으로 사용 가능합니다. SFTP를 통해 서버에 연결하고 FTP와 유사한 명령을 사용하여 파일과 해당 get
콘텐츠를 찾으세요.
c) 그래픽 사용자 인터페이스 사용
예를 들어 Filezilla 또는 Nautilus는 원격 SFTP/SSH 공유를 찾아볼 수 있습니다.
d) 인증서 설정
인증서 연결을 설정하면 로컬 측뿐만 아니라 원격 측에서도 탭 완성을 수행할 수 있습니다! 예를 들어, 귀하의 buzz
예에 따라 다음을 수행할 수 있습니다.
bob@foo$ scp bob@bar:/guest/[tab][tab]
잠시 후 원격 /guest/ 폴더에 포함된 파일 목록이 나타납니다.
인증서로 SSH를 설정하는 방법은 무엇입니까?
a) 아직 완료하지 않은 경우 개인 RSA 키 쌍을 생성하십시오.
OpenSSH 클라이언트가 이미 설치되어 있는 경우 다음을 입력하여 이 작업을 수행할 수 있습니다.
bob@foo$ ssh-keygen -t rsa
(사용 가능한 모든 옵션에 대해서는 설명서나 온라인을 확인하세요). 비밀번호를 입력하라는 메시지가 표시될 수 있습니다. 이는 로컬 계정 비밀번호가 아니라 암호화에 사용할 수 있는 선택적 비밀번호입니다.개인 키당신은 산란하려고합니다.
효과적으로 다음과 같은 2개의 파일을 생성하게 됩니다.
- /Users/[사용자 이름]/.ssh/id_rsa
- /Users/[사용자 이름]/.ssh/id_rsa.pub
첫 번째 *id_rsa*는 다음과 같아야 합니다.사적인. 기본적으로 ssh-keygen
노출을 피하기 위해 모든 노력을 기울입니다(파일 시스템 액세스 사용). 그렇기 때문에 (선택적) 비밀번호도 묻는 것입니다. 이에 대해 너무 걱정하지 마세요. *id_rsa* == 개인 키==를 기억하세요.사적인. 이 키는절대컴퓨터에서 멀리 떨어지십시오.
두 번째는 공개입니다. 이 공개 인증서에서 개인 키를 검색하려면 많은 컴퓨터 성능이 필요합니다.의미는헤헤). 세상과 공유하는 것은 완전히 안전합니다. NSA나 유사한 기관이 실제로 공개 키를 해독하기 위해 수백만 달러를 지출하려고 하는 극히 드문 경우에도 MacBook은 여전히 안전할 것입니다... (또는 그렇지 않을 수도 있습니다. 누군가가 그렇게 많은 돈을 원한다면 생각해 보십시오. 당신은 안전한 편에 있습니다) 문제 :)
이 공개 인증서는 실제로 원격 서버에 넣을 인증서입니다.술집.
b) 공개 인증서를 서버에 어떻게 넣나요?
두 가지 옵션.
ssh-copy-id
사용 가능한 경우 다음을 사용하십시오bob@foo$ ssh-copy-id bob@bar
. 완벽한.의 경우아니요,
~/.ssh/id_rsa.pub
에게 복사술집:bob@foo$ sftp ~/.ssh/id_rsa.pub bob@bar:pub_cert
(여기서 id_rsa.pub
개인 폴더의 공개 인증서를 원격 컴퓨터로 복사합니다..ssh/
~
술집사용자의 홈 폴더에서단발. 이것이 기본 설정입니다. 또한 이 프로세스 중에 이름이 id_rsa.pub
변경되었습니다 . 나는 그것이 정확히 )로 사용될 수 있다는 것을 보여주기 위해 pub_cert
넘어갔습니다 .sftp
scp
이제 인증서를 올바른 위치에 복사합니다.
bob@foo$ ssh bob@bar
이제 Bob의 개인 폴더에 있습니다.술집.
bob@bar$ cat pub_cert >> .ssh/known_hosts
cat
(여기서 를 사용하여 pub_cert .ssh/known_hosts
의 내용을 표시합니다 >
. 이는 >>
"기존 파일의 끝에 스트림을 추가합니다"를 의미합니다).
다) 결과는?
이제 당신은 scp
// sftp
갈 수 있습니다ssh
술집비밀번호를 입력하지 않고도 자유롭게 사용할 수 있습니다. [tab] 키를 사용하여 로컬 및 원격 경로를 자동 완성할 수도 있습니다.
d) 내 Mac은 얼마나 안전합니까?
이렇게 하면 컴퓨터에서 SSH 서버를 실행할 필요조차 없습니다. SSH 클라이언트( scp
//프로그램 sftp
) 는 하나만 있습니다 ssh
. 이것은 당신에게 안전합니다.술집피해를 입었습니다.
e) 이 키/인증서로 정확히 무엇을 했습니까?
먼저 개인 키와 공개 인증서 등 몇 가지 파일을 생성합니다. 이를 통해 보안 및 인증과 관련된 많은 작업을 수행할 수 있습니다. 그러나 우리의 경우에는 상당히 단순화하여 다음과 같이 사용됩니다.
에 연결하려고 하면술집, 연결에 사용할 수 있는 인증서를 획득했음을 알립니다.
술집을 포함하여 시스템의 다양한 위치를 확인하고 ~/.ssh/known_hosts
귀하가 발급한 인증서를 찾아 암호화된 데이터를 전송하는 데 사용합니다.
공개 인증서는 실제로 물건을 암호화할 수 있습니다!
이제 이것은 훌륭하지만 어떻게 할 수 있습니까?부자분명한? 개인 키를 사용하세요.
개인 키는 해당 공개 인증서로 암호화된 내용을 해독할 수 있습니다!
이를 비대칭 암호화라고 합니다.
그런 다음 기본적으로 서버는 공용 인증서를 사용하여 암호화된 복잡한 비밀번호를 보냅니다. 이를 수신하고 개인 키로 해독한 후 이를 사용하여 서버와 양방향으로 데이터를 암호화하기 시작합니다.
이제 정말로 자신의 방식대로 일을 하고 싶으면 SCP로 돌아가세요.부자?
당신은 단지 문제를 요구하고 있습니다. 그러나 가능한 손상의 영향을 완화하기 위해 chroot 전용 서버를 설정할 수 있습니다 SFTP
. 더 이상 작동 scp
하지 ssh
않지만 sftp
Filezilla 및 기타 기능은 작동합니다.
인용하다:https://www.allthingsdigital.nl/2013/05/12/setting-up-an-sftp-only-account-with-openssh/
답변2
파일의 형식을 살펴보면 authorized_keys
특정 키와 함께 사용할 수 있는 명령을 제한할 수 있음을 알 수 있습니다. scp
이 경우에는 이전에 사용했던 방법으로, 지정된 키를 사용하여 특정 명령에 대한 SSH 작업을 허용합니다. 매뉴얼 페이지를 보는 데 사용합니다 man authorized_keys
.
답변3
한 번 살펴보고 싶을 수도 있습니다https://github.com/scponly/scponly/wiki/Download또는 사용자가 sftp
이와 같이만 제한할 수 있습니다...
# usermod -s /usr/libexec/openssh/sftp-server whoever
답변4
다른 사람들과 마찬가지로 다른 컴퓨터에서 직접 복사하는 것이 좋습니다.
bob@foo$ scp bar:/guest/buzz ~
어떤 이유로 bar에서 복제를 시작하려는 경우 foo가 foo에 로그인할 수 있도록 foo에 SSH 키 쌍을 생성할 수 있습니다. 그런 다음 SSH 에이전트를 사용하여 동일한 연결을 통해 키를 전달할 수 있습니다.
bob@foo$ ssh -A bar
password:
bob@bar$ scp /guest/buzz bar:
# no password prompt
비밀번호 프롬프트가 표시되지 않도록 공개 키를 바에 복사할 수도 있고, 키에 비밀번호를 추가하고 SSH를 통해 바에 입력한 다음 SSH 프록시 때문에 필요하지 않을 수도 있습니다. 역방향 연결을 위해 동시에 안전을 유지하십시오.