사용자 도구

사이트 도구


ssh

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
ssh [2020/07/10 21:51] – [Port Fowarding을 이용해서 외부에서 접속] rex8312ssh [2025/03/26 16:17] (현재) rex8312
줄 1: 줄 1:
 ====== SSH ====== ====== SSH ======
- 
-{{tag>ssh}} 
  
 ===== SSH timeout ===== ===== SSH timeout =====
줄 35: 줄 33:
 (클라이언트에서 서버에) 키 복사 (클라이언트에서 서버에) 키 복사
  
 +  # (1)
   ssh-copy-id -i ${HOME}/.ssh/id_rsa.pub {server-id}@{server-ip}   ssh-copy-id -i ${HOME}/.ssh/id_rsa.pub {server-id}@{server-ip}
      
-  # 클라이언트의 id_rsa.pub 파일내용을 서버의 .ssh/authorized_keys 에 추가 +  # (2) 
-  # 만약 서버에 원격접속이 힘든경우 (예. termux) +  # 클라이언트의 id_rsa.pub 파일내용을 서버의 .ssh/authorized_keys 에 추가하면 되기 때문, 
-  # 클라이언트에서 python -m http.server 로 웹서버를 띄우고  +  # 클라이언트의 id_rsa.pub 파일을 서버에 복사하고 authorized_keys에 수동으로 추가해도 됨 
-  # 서버서 wget으로 pub 파일을 다운받아 저장하고 +  scp ${HOME}/.ssh/id_rsa.pub {server-id}@{server-ip}:~/ 
-  # cat id_rsa.pub >> .ssh/authorized_keys 를 입력하여 키를 추가할 수 있음+  ssh {server-id}@{server-ip} 
 +  cat id_rsa.pub >> .ssh/authorized_keys 
 +  rm id_rsa.pub 
 +   
 +  # (3) 
 +  # pem file 복사 
 +  cat ~/.ssh/id_rsa.pub | ssh -i "pair.pem" root@10.0.0.1 "cat - >> ~/.ssh/authorized_keys"
      
 (클라이언트에서) 접속 (클라이언트에서) 접속
줄 49: 줄 54:
   - http://www.haruair.com/blog/2220   - http://www.haruair.com/blog/2220
      
 +==== Windows ====
 +
 +1. 클라이언트의 {HOME}/.ssh/id_rsa.pub 내용을 서버의 {HOME}/.ssh/authorized_keys에 추가
 +
 +2. C:\ProgramData\ssh\sshd_config 에서 다음 두 줄을 주석처리
 +
 +<code ini>
 +Match Group administrators
 +       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
 +</code>
 +
 +3. ssh 서버 재시작
 +
 +<code powershell>
 +restart-service sshd
 +</code>
 ===== Port Fowarding을 이용해서 외부에서 접속 ====== ===== Port Fowarding을 이용해서 외부에서 접속 ======
  
줄 55: 줄 76:
 외부에서 접속하고자 하는 서버에서 실행 외부에서 접속하고자 하는 서버에서 실행
  
-  ssh -R 2222:localhost:22 {server-id}@{server-ip}+  ssh -R 2222:localhost:22 -R 6006:localhost:6006 -R 8888:localhost:8888 {server-id}@{server-ip}
      
   # {server-ip} 는 외부에서 접속이 가능한 서버   # {server-ip} 는 외부에서 접속이 가능한 서버
줄 61: 줄 82:
 외부의 클라이언트에서에서 로컬 포트 포워딩으로 서버 접속 외부의 클라이언트에서에서 로컬 포트 포워딩으로 서버 접속
  
-  ssh -L 2223:localhost:2222 {server-id}@{server-ip}+  ssh -L 2223:localhost:2222 -L 6006:localhost:6006 -L 8888:localhost:8888 {server-id}@{server-ip}
      
  다른 창에서 로컬호스트에 접속  다른 창에서 로컬호스트에 접속
      
-  ssh localhost -p 2223+  ssh localhost -p 2223  # tb (6006), jupyter (8888)은 웹브라우저로 접속
      
 또는, 외부 컴퓨터에서 서버에 접속 후 로컬의 2222에 접속 또는, 외부 컴퓨터에서 서버에 접속 후 로컬의 2222에 접속
줄 73: 줄 94:
      
  
-  - http://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/+  - [[http://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/|SSH 포트 포워딩]]
   - https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding   - https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
   - [[http://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host#%EC%B6%94%EC%B2%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95---proxycommand|SSH Proxy 와 점프호스트(경유서버를 이용한 목적서버 연결)]]   - [[http://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host#%EC%B6%94%EC%B2%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95---proxycommand|SSH Proxy 와 점프호스트(경유서버를 이용한 목적서버 연결)]]
 +  - https://medium.com/dynamic-python/automatic-ssh-tunnels-6eb3ac4c2ad
  
  
줄 113: 줄 135:
         time.sleep(1)         time.sleep(1)
 </code> </code>
-===== SSHFS ===== 
  
-{{tag>ssh}} 
  
-sshfs 설치+client - 방화벽 - proxy(중계서버, 접속가능한 서버) - 방화벽 - server(작업용)
  
-  sudo apt install sshfs +    * server에서 proxy로 접속 
-   +<code bash> 
-마운트+ssh -R 2222:localhost:22 {proxy_ip) 
 +</code> 
 +    * client에서 proxy로 접속 
 +<code bash> 
 +ssh -L 2222:localhost:2222 {proxy_ip) 
 +</code> 
 +    * client에서 server로 접속 
 +<code bash> 
 +ssh localhost -p 2222  
 +</code> 
 +===== SSHFS =====
  
-  * /etc/fuse.conf에서 user_allow_other 설정+[[sshfs]]
  
-  sshfs {server-id}@{server-ip}:{target-dir} {mount-dir} -o allow_other -o reconnect -o nonempty 
-   
-언마운트 
- 
-  fusermount -u {mount} 
-   
-자동 마운트 
-  * fstab에 설정 
-  * 또는 .bashrc에 마운트 명령 추가 
- 
-  - https://blog.leocat.kr/notes/2018/04/23/sshfs-mount-remote-server-using-ssh 
- 
-Windows 용 
- 
-  - https://github.com/billziss-gh/sshfs-win 
- 
-<code> 
-net use S: \\sshfs\rex83128312@{IP} 
-</code> 
 ===== SSH remote command ===== ===== SSH remote command =====
  
줄 151: 줄 162:
  
   ssh {ip} {command}   ssh {ip} {command}
 +  ssh -t {ip} {command}  # interactive terminal (Error opening terminal: unknown. 에러가 발생할 때 사용)
      
 여러줄 명령어 실행 여러줄 명령어 실행
줄 161: 줄 173:
   # 127.0.0.1에 접속해서, 127.0.0.1에 접속해서, ping 127.0.0.1 실행   # 127.0.0.1에 접속해서, 127.0.0.1에 접속해서, ping 127.0.0.1 실행
   ssh 127.0.0.1 "echo 1; ssh 127.0.0.1 ""echo 2; ping 127.0.0.1"""   ssh 127.0.0.1 "echo 1; ssh 127.0.0.1 ""echo 2; ping 127.0.0.1"""
 +  
 +원격 아나콘다 환경 활성화
 +<code bash>
 +ssh {user}@{host} "source /home/rex8312/anaconda3/etc/profile.d/conda.sh; conda activate {virenv}; which python"
 +</code>
      
 python script에서 실행 python script에서 실행
줄 195: 줄 212:
 ==== port 변경 ==== ==== port 변경 ====
  
-{{tag>ssh}} 
  
   * /etc/ssh/sshd_config의 Port 22 변경   * /etc/ssh/sshd_config의 Port 22 변경
줄 218: 줄 234:
  
   * http://www.haruair.com/blog/2219   * http://www.haruair.com/blog/2219
 +
 +
 +{{tag>ssh}}
ssh.1594417903.txt.gz · 마지막으로 수정됨: 2024/03/23 02:37 (바깥 편집)