SSH 디렉토리
위시리스트를 사용하면 앱이 원하는지 여부에 관계없이 여러 SSH 엔드 포인트에 대한 단일 진입 점을 가질 수 있습니다.
서버는 단일 패키지 내에서 여러 SSH 앱을 시작하여 SSH에 나열하는 데 사용될 수 있습니다. 다른 곳에 제공된 앱도 나열 할 수 있습니다.
wishlist
명령을 사용하여 ~/.ssh/config
또는 YAML 구성 파일의 서버에 나열하고 연결할 수도 있습니다.
Fave 패키지 관리자 사용 :
# 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
자세한 내용은 예제 구성 파일 파일 및 wishlist server --help
확인하십시오.
~/.ssh/config
탐색하려면 로컬 모드에서 위시리스트를 실행할 수 있습니다.
wishlist
현재 모든 옵션이 지원되는 것은 아닙니다. 참조를 위해 주석 예제 구성을 확인하십시오.
위시리스트는 라이브러리로도 제공되므로 동일한 프로세스 내에서 여러 앱을 시작할 수 있습니다. 작업 예제는 _example
폴더를 확인하십시오.
로컬 모드에서 실행될 때 Wishlist는 먼저 현재 엔드 포인트에 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
실행하여 모든 옵션을 볼 수 있습니다.
Tailnet 의 모든 노드를 찾아서 엔드 포인트로 추가하도록 위시리스트를 구성 할 수 있습니다.
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 구성의 호스트와 같이 그렇습니다.
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/basedir/basedir-spec-latest.html에 의해 지정된대로 $XDG_CONFIG_HOME
이됩니다 $HOME/.config
. 다윈에서는 $HOME/Library/Application Support
될 것입니다. Windows에서는 %AppData%
가됩니다. 계획 9에서는 $home/lib
됩니다. ↩ ↩ 2 ↩ 3