SSHディレクトリ
ウィッシュリストを使用すると、アプリがウィッシュであるかどうかにかかわらず、複数のSSHエンドポイントの単一のエントリポイントを使用できます。
サーバーとして、単一のパッケージ内で複数のSSHアプリを起動し、SSHを介してリストするために使用できます。他の場所に提供されるアプリもリストすることができます。
wishlist
コマンドを使用して、 ~/.ssh/config
またはyaml構成ファイルのサーバーをリストして接続することもできます。
お気に入りのパッケージマネージャーを使用してください。
# macOS or Linux
brew install charmbracelet/tap/wishlist
# Arch Linux (btw)
yay -S wishlist-bin
# or
yay -S wishlist
# Windows (with winget)
winget install wishlist
# Windows (with Scoop)
scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git
scoop install wishlist
# Nix
nix-env -iA nixpkgs.wishlist
# Debian/Ubuntu
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo " deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * * " | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install wishlist
# Fedora/RHEL
echo ' [charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key ' | sudo tee /etc/yum.repos.d/charm.repo
sudo yum install wishlist
または、リリースページから事前にコンパイルされたバイナリまたはパッケージをダウンロードします。
または、自分でそれを構築するだけです(1.19+に行く必要があります):
git clone https://github.com/charmbracelet/wishlist.git
cd wishlist
go build ./cmd/wishlist/
既存のサーバーのディレクトリが必要な場合は、 wishlist
CLIとYAML構成ファイルを使用できます。また、 ~/.ssh/config
のサーバーをリストするために、引数なしでそれを実行することもできます。サーバーモードでウィッシュリストを開始するには、 serve
サブコマンドを使用する必要があります。
wishlist serve
詳細については、Config Fileファイルの例とwishlist server --help
を確認してください。
~/.ssh/config
探索したい場合は、次のようなローカルモードでウィッシュリストを実行できます。
wishlist
現時点ではすべてのオプションがサポートされているわけではないことに注意してください。参照のコメントの例の構成を確認してください。
WishListはライブラリとしても利用できます。これにより、同じプロセス内で複数のアプリを開始できます。作業例については、 _example
フォルダーをご覧ください。
ローカルモードで実行すると、ウィッシュリストはまず、現在のエンドポイントにIdentityFile
が指定されているかどうかを確認します。もしそうなら、それを使用しようとします。そうでない場合は、SSHエージェントが利用できるかどうかがわかり、使用します。それ以外の場合は、 ~/.ssh
で共通のキー名を試します。
サーバーとして実行するとき、ウィッシュリストは最初に現在のSSHエージェントを転送しようとします。エージェントがない場合、 .wishlist/client_ed25519
に存在する既存のED25519キーを作成または使用します。現在、パスワード認証はサポートされていません。
eval (ssh-agent)
ssh-add -k # adds all your pubkeys
ssh-add -l # should list the added keys
ssh
-o ' ForwardAgent=yes ' # forwards the agent
-o ' UserKnownHostsFile=/dev/null ' # do not add to ~/.ssh/known_hosts, optional
-p 2222 # port
foo.bar # host
-t list # optional, app name
これを~/.ssh/config
に追加することもできます。
Host wishlist
HostName foo.bar
Port 2222
ForwardAgent yes
UserKnownHostsFile /dev/null
ウィッシュリストは、Zeroconf、SRVレコード、およびテールスケールを使用してエンドポイントを発見できます。
それらすべての簡単な説明と例を見つけることができます。
wishlist --help
すべてのオプションを確認するためにヘルプ。
テールネット内のすべてのノードを見つけて、エンドポイントとして追加するようにウィッシュリストを構成できます。
wishlist --tailscale.net=your_tailnet_name --tailscale.key=tskey-api-abc123...
ヒントを使用して、接続設定を変更できます。
テールスケールAPIキーは90日後に期限切れになります。数か月ごとに介入する必要がないものが必要な場合は、OAUTHクライアントを使用してください。
ここでクライアントを作成します。必要な唯一のスコープはdevices:read
。
--tailscale.key
(または$TAILSCALE_KEY
)を使用する代わりに、 --tailscale.client.id
および--tailscale.client.secret
(または$TAILSCALE_CLIENT_ID
および$TAILSCALE_CLIENT_SECRET
)を使用します。
--zeroconf.enabled
フラグを使用してこれを有効にすることができます:
wishlist --zeroconf.enabled
オプションで、 --zeroconf.timeout
と、 --zeroconf.domain
で探すドメインを使用してタイムアウトを指定することもできます。
ウィッシュリストは、指定されたドメインで_ssh._tcp
サービスを探します。
ヒントを使用して、接続設定を変更できます。
DNS SRV
レコードからノードを見つけるためにウィッシュリストを設定できます。
wishlist --srv.domain example.com
デフォルトでは、ウィッシュリストはエンドポイントの名前をSRV
ターゲットに設定します。ただし、次の形式でTXT
レコードでそれをカスタマイズできます。
wishlist.name full.address:22=thename
したがって、この場合、ポート22
のfull.address
を指すSRV
レコードはthename
名前を取得します。
YAML構成ファイルのhints
キーを使用して、発見されたエンドポイントに設定をヒントすることができます。
設定ファイルの例を確認して、利用可能なオプションを学習します。
SSH構成ファイルをウィッシュリスト構成ファイルとして使用している場合、指定された構成のルールとホストを一致させようとします。それ以外の場合、サービスはリストに追加されます。
違いは、ヒント自体がTUIに表示されない場合、SSH構成のホストのように、TUIに表示されないことです。
WishListは、現在の作業ディレクトリの.wishlist
フォルダーにすべての情報を読み取り、保存します。
構成ファイルは、YAMLまたはSSH構成形式のいずれかで提供される場合があります。
構成ファイルは次の順序で試されます。
-config
フラグ.wishlist/config.yaml
.wishlist/config.yml
.wishlist/config
[[user config dir]]/wishlist/config.yaml
1[[user config dir]]/wishlist/config.yml
1[[user config dir]]/wishlist/config
1$HOME/.ssh/config
/etc/ssh/ssh_config
エラーなしでロードされ、解析される最初のものが使用されます。これは、 ~/.ssh/config
に共通の中古ホストがある場合、 wishlist
を実行してすぐに実行することができることを意味します。また、それを望まない場合は、 -config
へのパスを渡すことができ、yamlまたはSSH構成ファイルのいずれかにすることができます。
wishlist
mkdir .wishlist
$EDITOR .wishlist/config.yaml # either an YAML or a SSH config
docker run
-p 2222:22
-v $PWD /.wishlist:/.wishlist
docker.io/charmcli/wishlist:latest
すべてのSSHオプションが現在サポートされているわけではありません。これが次のリストです。
User
Hostname
Port
IdentityFiles
ForwardAgent
RequestTTY
RemoteCommand
SendEnv
SetEnv
ConnectTimeout
Include
PreferredAuthentications
ProxyJump
上記のGIFは、多くのMaas Lalaniの紙幣を示しています。
このプロジェクトについてのあなたの考えを聞きたいです。お気軽におめでとうございます!
mit
魅力の一部。
チャーム热爱开源•チャームはオープンソースが大好きです
IE [[user config dir]]
:UNIXシステムでは、https://specifications.freedesktop.org/badeir-pec/basedir-pec-latest.htmlで指定されている$XDG_CONFIG_HOME
になります$HOME/.config
。ダーウィンでは、 $HOME/Library/Application Support
になります。 Windowsでは、 %AppData%
になります。プラン9では、 $home/lib
になります。 ↩↩2↩3