Secure Shell

SSH筆記

SSH Protocol

ssh Agent

eval $(ssh-agent)

添加 key

ssh-add .ssh/id_key

檢視 agent 目前已添加的 key

ssh-add -L

ssh_config

關於這項的配置可以參見 man ssh_config,在~/.ssh/config設定以下內容

host example
  Port 22
  Hostname example.com
  IdentityFile ~/.ssh/id_example

輸入指令ssh user@example將會同等於ssh user@example.com 且讀取私鑰檔案。

ProxyCommand

透過A主機連上B主機

host hostA
  Port 22
  Hostname example.com

host hostB
  Port 22
  Hostname 192.168.1.1
  ProxyCommand ssh -qW %h:%p hostA
  IdentityFile ~/.ssh/id_1

直接透過指令轉發

ssh -o ProxyCommand="ssh -qW hostA" hostB

連上hostB

ssh hostB

其他常用指令

scp

scp source target

sshfs

sshfs user@host:dir mountpoint

Socks5 代理

如果要透過 ssh server 端進行代理

ssh -D 1337 -q -C -N domain

如果要使 ssh clinet 端作為代理

如果要將 sshd server 的流量透過 client 打出去就採用這個

ssh -R 1337 domain

之後我們可以複製 proxychains 的檔案配置到 localhost:1337

socks5 	127.0.0.1 1337

之後啟用 proxychins

proxychains -f ./proxychains.conf zsh

檢查 ip 是否正確

proxychains curl ifconfig.me/ip

Local Forwarding

如果 ssh client 只能連上 example.com 的 ssh,但在該 sshd server 裡面有其他外網連不上的服務監聽 8000 port ,可以透過以下指令綁定 5000 port 進行 local forwarding。之後我們可以從 ssh client 端綁定一個 5000 端口連上此服務。

ssh -L 5000:localhost:8000 example.com	

問題

Remote Host Identification Has Changed

移除known_hosts裡面的主機,這裡假設主機為127.0.0.1

ssh-keygen -R "127.0.0.1"

Linux Network SSH Socks5