ssh
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| ssh [2020/07/23 14:17] – rex8312 | ssh [2025/06/29 16:45] (현재) – [ssh: port forward] rex8312 | ||
|---|---|---|---|
| 줄 33: | 줄 33: | ||
| (클라이언트에서 서버에) 키 복사 | (클라이언트에서 서버에) 키 복사 | ||
| + | # (1) | ||
| ssh-copy-id -i ${HOME}/ | ssh-copy-id -i ${HOME}/ | ||
| | | ||
| - | # 클라이언트의 id_rsa.pub 파일내용을 서버의 .ssh/ | + | |
| - | # 만약 서버에 원격접속이 힘든경우 (예. termux) | + | |
| - | # 클라이언트에서 python -m http.server 로 웹서버를 띄우고 | + | # 클라이언트의 id_rsa.pub 파일을 |
| - | # 서버에서 wget으로 pub 파일을 다운받아 저장하고 | + | scp ${HOME}/ |
| - | # cat id_rsa.pub >> .ssh/ | + | ssh {server-id}@{server-ip} |
| + | cat id_rsa.pub >> .ssh/ | ||
| + | rm id_rsa.pub | ||
| + | | ||
| + | # (3) | ||
| + | # pem file 복사 | ||
| + | | ||
| | | ||
| (클라이언트에서) 접속 | (클라이언트에서) 접속 | ||
| 줄 47: | 줄 54: | ||
| - http:// | - http:// | ||
| | | ||
| - | ===== Port Fowarding을 이용해서 외부에서 접속 ====== | + | ==== Windows |
| - | {{tag>ssh}} | + | 1. 클라이언트의 |
| - | 외부에서 | + | 2. C: |
| - | ssh -R 2222: | + | <code ini> |
| - | + | Match Group administrators | |
| - | # {server-ip} 는 외부에서 접속이 가능한 서버 | + | AuthorizedKeysFile __PROGRAMDATA__/ |
| - | | + | </ |
| - | 외부의 클라이언트에서에서 로컬 포트 포워딩으로 서버 접속 | + | |
| - | | + | 3. ssh 서버 |
| - | + | ||
| - | | + | |
| - | + | ||
| - | ssh localhost -p 2223 | + | |
| - | + | ||
| - | 또는, 외부 컴퓨터에서 | + | |
| - | ssh {server-id}@{server-ip} | + | <code powershell> |
| - | ssh localhost | + | restart-service sshd |
| - | + | </ | |
| - | - [[http:// | ||
| - | - https:// | ||
| - | - [[http:// | ||
| - | |||
| - | |||
| - | 클라이언트의 ~/ | ||
| - | |||
| - | Host * | ||
| - | ServerAliveInterval 120 | ||
| - | |||
| - | - https:// | ||
| - | |||
| - | |||
| - | <code python lab.py> | ||
| - | import argparse | ||
| - | from subprocess import run | ||
| - | from shlex import split | ||
| - | from socket import gethostname | ||
| - | import time | ||
| - | from colorama import Fore, init | ||
| - | from tqdm import trange | ||
| - | |||
| - | SERVER = ' | ||
| - | init(autoreset=True) | ||
| - | |||
| - | parser = argparse.ArgumentParser() | ||
| - | parser.add_argument(' | ||
| - | args = parser.parse_args() | ||
| - | |||
| - | nx = gethostname() | ||
| - | cmd = 'ssh -R {}: | ||
| - | |||
| - | while True: | ||
| - | print(' | ||
| - | print(Fore.LIGHTBLUE_EX + ' | ||
| - | rus = run(split(cmd)) | ||
| - | print(Fore.LIGHTRED_EX + ' | ||
| - | for _ in trange(30): | ||
| - | time.sleep(1) | ||
| - | </ | ||
| ===== SSHFS ===== | ===== SSHFS ===== | ||
| - | {{tag> | + | [[sshfs]] |
| - | sshfs 설치 | ||
| - | |||
| - | sudo apt install sshfs | ||
| - | | ||
| - | 마운트 | ||
| - | |||
| - | * / | ||
| - | |||
| - | sshfs {server-id}@{server-ip}: | ||
| - | | ||
| - | 언마운트 | ||
| - | |||
| - | fusermount -u {mount} | ||
| - | | ||
| - | 자동 마운트 | ||
| - | * fstab에 설정 | ||
| - | * 또는 .bashrc에 마운트 명령 추가 | ||
| - | |||
| - | - https:// | ||
| - | |||
| - | Windows 용 | ||
| - | |||
| - | - https:// | ||
| - | |||
| - | < | ||
| - | net use S: \\sshfs\rex83128312@{IP} | ||
| - | </ | ||
| ===== SSH remote command ===== | ===== SSH remote command ===== | ||
| 줄 149: | 줄 82: | ||
| ssh {ip} {command} | ssh {ip} {command} | ||
| + | ssh -t {ip} {command} | ||
| | | ||
| 여러줄 명령어 실행 | 여러줄 명령어 실행 | ||
| 줄 159: | 줄 93: | ||
| # 127.0.0.1에 접속해서, | # 127.0.0.1에 접속해서, | ||
| ssh 127.0.0.1 "echo 1; ssh 127.0.0.1 "" | ssh 127.0.0.1 "echo 1; ssh 127.0.0.1 "" | ||
| + | | ||
| + | 원격 아나콘다 환경 활성화 | ||
| + | <code bash> | ||
| + | ssh {user}@{host} " | ||
| + | </ | ||
| | | ||
| python script에서 실행 | python script에서 실행 | ||
| 줄 210: | 줄 149: | ||
| HostName 192.168.0.102 | HostName 192.168.0.102 | ||
| User {id} | User {id} | ||
| + | Port {port} | ||
| IdentityFile / | IdentityFile / | ||
| </ | </ | ||
| 줄 216: | 줄 156: | ||
| * http:// | * http:// | ||
| + | ====== ssh: port forward ====== | ||
| + | |||
| + | * [[ssh: | ||
| + | |||
| + | |||
| + | ==== 참고 ==== | ||
| + | |||
| + | * https:// | ||
| {{tag> | {{tag> | ||
ssh.1595513863.txt.gz · 마지막으로 수정됨: (바깥 편집)