ssh
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
ssh [2020/08/03 19:06] – 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 ===== | ||
- | | + | [[sshfs]] |
===== SSH remote command ===== | ===== SSH remote command ===== | ||
줄 122: | 줄 82: | ||
ssh {ip} {command} | ssh {ip} {command} | ||
+ | ssh -t {ip} {command} | ||
| | ||
여러줄 명령어 실행 | 여러줄 명령어 실행 | ||
줄 132: | 줄 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에서 실행 | ||
줄 183: | 줄 149: | ||
HostName 192.168.0.102 | HostName 192.168.0.102 | ||
User {id} | User {id} | ||
+ | Port {port} | ||
IdentityFile / | IdentityFile / | ||
</ | </ | ||
줄 189: | 줄 156: | ||
* http:// | * http:// | ||
+ | ====== ssh: port forward ====== | ||
+ | |||
+ | * [[ssh: | ||
+ | |||
+ | |||
+ | ==== 참고 ==== | ||
+ | |||
+ | * https:// | ||
{{tag> | {{tag> |
ssh.1596481586.txt.gz · 마지막으로 수정됨: (바깥 편집)