내 개인 키를 업로드하지 않고 컴퓨터 간에 파일 복사

내 개인 키를 업로드하지 않고 컴퓨터 간에 파일 복사

두 컴퓨터에 대한 SSH 액세스 권한이 있고 두 컴퓨터 사이에 큰 파일을 복사하고 싶습니다. 나에게도 sudo권한이 있지만 컴퓨터 1에서 컴퓨터 2로 로그인하기 위해 어떤 방식으로든 내 개인 키 파일이 컴퓨터 중 하나에 업로드되는 것을 원하지 않습니다. 어떻게 생각하나요?

답변1

"...어떤 식으로든 올리고 싶지 않아요내 거머신 중 하나에 대한 개인 키 파일..."

당신의 주된 관심사는 "당신 자신"개인 키는 컴퓨터 외부로 전송되지만 제공할 필요는 없습니다."당신 자신"개인 키.

"데스크탑/관리자" 머신에서 기본값과 다른 이름의 "일회성" 새 키 쌍(ssh-keygen 사용)을 생성하세요.일회용 키. 긴 비밀번호로 새로 생성된 개인 키를 보호하세요.
새로 생성된 새 개인 키 업로드일회용 키예를 들어 server1, 다른 키, 즉 새 공개 키onetimekey.pub서버 2에 업로드합니다. server1에서 새로 생성된 개인 키를 사용하여 파일을 server2로 scp합니다.
또는 server1에서 직접 새 키 쌍을 생성하고 새 공개 키를 관리 컴퓨터에 다운로드한 다음 server2에 업로드하세요.

물론 공개 키를 server2에 업로드한 후에는 이를 올바른 위치(기본값 ~/.ssh/authorized_keys)에 "배치"해야 합니다.

간단히 말해서(데스크톱/관리 컴퓨터에 있는 경우):

ssh-keygen
# on the first prompt give 'onetimekey' name for the new key pair
# on 'passphrase' prompt give very long passphrase to secure your private key
scp onetimekey user1@server1:/home/user1/.ssh
scp onetimekey.pub user2@server2:/home/user2
ssh user2@server2 "cat onetimekey.pub >> .ssh/authorized_keys" # note >>, do not use >, > overwrites files
ssh user1@server1 # you are at server1 now, and from server1 run command below:
scp -i .ssh/onetimekey your_big_file user2@server2:/home/user2

"내 개인 키 문제"에 대해 틀렸다면 죄송합니다. 모든 내용을 놓치지 않았으면 좋겠습니다 :).

편집(아래 OP의 의견으로 인해):
OP는 server1 및 server2 시스템에서 임시 사용자를 사용/생성할 수 있는지 물었습니다. 물론 이 경로를 원할 경우 다음과 같이 할 수도 있습니다.

sudo useradd user1 # on server1 machine
sudo useradd user2 # on server2 machine
# do your work
sudo userdel -r user1 # on server1; -r for deleting home directory, i.e., /home/user1
sudo userdel -r user2 # on server2

이러한 서버에서 동일한 이름을 가진 사용자를 생성할 수 있습니다(예: server1 및 server2의 user1(이 경우 위의 코드 변경)).

일반 사용자 사용에 대한 내 의견 중 중요한 부분:
내가 댓글에서 "작업이 끝나면 모든 내용을 삭제하세요(비공개/사람들열쇠...누군가 Authorized_keys를 잘못 이해 하면
Authorized_keys 파일이 공개키라고 생각할 수도 있습니다. Authorized_keys 파일은 공개 키가 아니며 공개 키를 포함하고 있으므로 .ssh 디렉터리에 있는authorized_keys 파일을 삭제하지 마십시오(진행 중인 SSH 세션을 종료하면 자동으로 잠깁니다)
. 임시 사용자인 경우 authenticate_keys 파일(/home/temp_user/.ssh/authorized_keys)을 삭제하더라도 문제가 되지 않습니다.

답변2

2개의 터널 을 사용한 다음 nc.box1box2

ssh -L 4444:localhost:4444 user@box2 # open my box' port 4444 and connect to port 4444 on box2
ssh -R 4444:localhost:4444 user@box1 # open box1's port 4444 and connect to port 4444 on my box

이제 box1의 포트 4444에 연결하는 모든 것은 box2의 포트 4444를 사용하려고 시도합니다.

상자 2:

nc -l 4444 > the_file

상자 1의 경우:

nc localhost 4444 < the_file

혹시라도 다른 기술에 대해 알고 싶습니다.

관련 정보