實驗室有一台主機,平常都是用 ssh 的方式連回去,記錄一下週邊的工具的設定。

ssh

Config file

在本機端創造 .ssh/config 檔,設定主機別名。

1
2
3
# 在根目錄創立 shh
mkdir ~/.ssh
vim ~/.ssh/config

Config 內容

1
2
3
Host <alias name>
Hostname <server>
User <username>

Public key 登入

在本機先生成 public key

1
ssh-keygen

~/.ssh/id_rsa.pub 中的 key 放到遠端主機。

  1. 使用ssh-copy-id
1
2
$ ssh-copy-id <user>@<server>
$ ssh-copy-id -i <key_path> <user>@<server>
  1. 或是連線到遠端 Linux 主機後,放到 ~/.ssh/authorized_keys 檔案裡面。

SSH tunnel

在遠端主機上開 Jupyter notebook 等服務後,把 Local port forward 到遠端主機上,就可以在本機連主機的 jupyter。

1
2
3
4
$ ssh -NL <local_port>:<remote_host>:<remote_port> <user>@<server>
$ # 將本機 8787 port forward 到遠端主機 localhost:8080
$ jupyter notebook --port 8080
$ ssh -NL 8787:localhost:8080 <user>@<server>
  • -N :不執行指令
  • -L :將 Local port forward
  • -R :將 Remote port forward
  • -f :背景執行

VScode

SFTP

有時候要在遠端主機上改 code 很麻煩,所以在本機用 VScode 搭配 Extension 方便快速修改、同步程式碼。通常還是用版控比較好。

https://marketplace.visualstudio.com/items?itemName=liximomo.sftp

Cmd+Shift+P 搜尋SFTP: config 建立設定檔。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "name": "Lab",
  "host": "140.118.xxx.xxx",
  "protocol": "sftp",
  "port": 22,
  "username": "hank",
  "remotePath": "~/projects/models",
  "uploadOnSave": true,
  "ignore": [".vscode", ".git", ".DS_Store", "./data/*"]
}