up:: Linux

別のマシンのターミナルに繋ぎたいときの超基本処理。

keygen

ssh-keygen -C "comment" -t ed25519 -f filename
type

vscodeをlinuxに繋ぐ

Visual Studio Code の Remote SSH で Linux 上のファイルを直接編集する VSCode - Qiita

一般ssh

  • キー作ってクライアントとサーバーの特定フォルダに入れる
  • クライアントが秘密鍵
  • サーバー
    • サーバーにログイン用のユーザーを作る
    • ファイアウォールでssh用のtcpを許可
      • 後述するコンフィグで開けるポートのtcp
sudo firewall-cmd --add-port 25565/tcp

永続化する場合は--permanent付けて実行後--reloadでリロードする。

- sshサーバーの設定
    - `/etc/ssh/sshd_config`を編集、`PermitRootLogin`など
- sshサーバーを起動
    - `systemctl start sshd`
  • クライアント
    • コンフィグを書く
      • 間違えやすいポイント
Host #適当な名前
	HostName #IPアドレスかURL
	User #linuxのユーザー
	Port #ポート、sshのデフォは22
	IdentityFile #秘密鍵のパス、パス区切りは/ ~使用可能
	IdentitiesOnly yes #IdentityFileが必要ならyes
    • コンフィグファイルの権限を自分だけに設定
      • windows特有の問題
    • ssh接続
      • パスワードを訊かれなければOK
      • 訊かれる場合はサーバーでPasswordAuthentication:noPubkeyAuthentication yesを設定する

初心者がSSHについて学ぶ(´・ω・`) Network - Qiita
最低限のセキュアなSSH接続 初心者 - Qiita
Windows に何もインストールせずに SSH を使う OpenSSH - Qiita
powershellのプロファイルとして設定しておくと、すぐに繋げられるようになるらしい。

.ssh/configファイルでSSH接続を管理する Linux - Qiita

Permission denied (publickey)

キーが見つからないとなる奴。
自分の解決策とか意地張ってないで、サーバー側で/etc/ssh/sshd_configLogLevel DEBUGを張ってsystemctl restart sshdをかけ、繋ぎ直してjournalctl -u sshd -n 100をかける。

今回は接続対象のユーザーのホームディレクトリに~/.ssh/authorized_keysが無かった。

……それと作ったディレクトリ所有者がrootだったので、対象のユーザーに変更した。chown。

デバッグ sshやscpで接続できないときに確認する内容(debug)
arch linux - Where are my sshd logs? - Unix & Linux Stack Exchange
【chown】Linuxでファイルやディレクトリの所有者やグループ変更するコマンド | UX MILK

scp

ファイルをコピーしたい場合、このsshを通したscpコマンドが使える。
scp target pathで動き、リモートマシンはuser@hostname:pathで指定できる。

【備忘録】リモートホスト⇔ローカルホスト ファイルの転送 Linux - Qiita
【scp】Linuxでリモート・ローカル間でファイルを転送するコマンド | UX MILK

sudo権

sudoは/etc/sudoersで管理されている。
ここに書いてあるグループにユーザーを追加すればOK。

ubuntuとかだとsudoグループらしいが、endeavourosだとrootか、includeされている/etc/sudoers.d/10.installerのwheel。
wheelが推奨されてるはず。

Sudo - ArchWiki
Permission to execute sudo commands without password rules being overwritten by another file - General system / Newbie - EndeavourOS

TermuxにVSCode繋ぐ

vscodeはglibcベースのLinuxディストリビューションに繋ぐことしか想定してない。要するにUbuntuなど。
なのでUbuntuを入れてそこでsshサーバーを建てて繋ぐ。

Remote Code Development on Termux using VS Code and Neovim
GitHub - MFDGaming/ubuntu-in-termux: This is a script by which you can install Ubuntu in your termux application without a rooted device

なんか知らんが駄目だった。
パスワードが効かなかった。cursorじゃなくvscodeも使ったが駄目だった。

Termux on AndroidのSSHサーバに接続する方法 | LFI