{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/ssh/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/ssh/", "feed_url": "https://matoken.org/blog/tag/ssh/feed/json/", "language": "ja", "title": "ssh – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=5097", "url": "https://matoken.org/blog/2025/12/25/ssh-tiny-christmas/", "title": "ssh tiny.christmas", "content_html": "
\n\u53bb\u5e74\u306f\u3044\u304f\u3064\u304b\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u30af\u30ea\u30b9\u30de\u30b9\u30c4\u30ea\u30fc\u3092\u96c6\u3081\u307e\u3057\u305f\uff0e
\n\u4eca\u5e74\u306f\u30cd\u30bf\u5207\u308c\u304b\u306a\u3068\u601d\u3063\u305f\u3089ActivityPub \u306b\u521d\u3081\u3066\u898b\u308b\u30bf\u30fc\u30df\u30ca\u30eb\u30af\u30ea\u30b9\u30de\u30b9\u30c4\u30ea\u30fc\u304c\u6d41\u308c\u3066\u304d\u307e\u3057\u305f\uff0e
\n\n
ssh \u3067\u63a5\u7d9a\u3059\u308b\u3068\u30c4\u30ea\u30fc\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e
\n$ ssh tiny.christmas\n
\u30af\u30ea\u30b9\u30de\u30b9\u30c4\u30ea\u30fc\u304c\u8868\u793a\u3055\u308c\uff0c\u300cO Christmas Tree\u300d\u306e\u6b4c\u8a5e\u304c\u6d41\u308c\u307e\u3059\uff0e
\ntree \u304cUnicode\u70b9\u5b57\u3092\u4f7f\u3063\u3066\u66f8\u304b\u308c\u3066\u3044\u308b\u306e\u304c\u6700\u8fd1\u307d\u3044\u3067\u3059\u306d\uff0e
\u8a73\u7d30\u306f\u4ee5\u4e0b\u306b\uff0e
\nForgejo+\u03b1\u306a\u611f\u3058\u306eGitHub\u4ee3\u66ff\u306aCodeberg\u306bSSH\u516c\u958b\u9375\u3092\u767b\u9332\u3057\u3066ssh\u516c\u958b\u9375\u8a8d\u8a3c\u3067Git\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\n
\u516c\u5f0f\u306e\u624b\u9806\u306f\u3053\u3061\u3089\u306b\u3042\u308a\u307e\u3059\uff0e\u5c11\u3057\u6c17\u306b\u306a\u3063\u305f\u306e\u304c\u9375\u751f\u6210\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067rounds\u304c100\u3082\u3042\u308b\u3053\u3068\uff0e\u624b\u5143\u306eOpenSSH 10.0p2\u306essh-keygen\u306eman\u3067\u78ba\u8a8d\u3059\u308b\u3068\u65e2\u5b9a\u5024\u306f16\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u5927\u5206\u637b\u3063\u3066\u3044\u307e\u3059\uff0e
\n\u9375\u30da\u30a2\u3092\u751f\u6210\u3057\u305f\u3089*.pub\u306e\u62e1\u5f35\u5b50\u306e\u4ed8\u3044\u305f\u516c\u958b\u9375*\u3092\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u304b\u3089\u767b\u9332\uff0e
\n~/.ssh/config\u306bCodeberg\u306e\u8a2d\u5b9a\u3092\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\uff0eCodeberg\u306fport 443\u3067\u3082ssh\u63a5\u7d9aok\u306a\u306e\u3067\u3053\u3053\u3067\u306f443\u3092\u4f7f\u3046\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\uff0e
\nUser\u304c\u307f\u3093\u306agit\u3067\u3059\u304c\uff0c\u9375\u306b\u3088\u308a\u30e6\u30fc\u30b6\u3092\u533a\u5225\u3059\u308b\u3088\u3046\u3067\u3059\uff0e
$ grep -A 4 Host\\ codeberg.org ~/.ssh/config\nHost codeberg.org\n HostName codeberg.org\n User git\n IdentityFile ~/.ssh/id_ed25519\n Port 443\n
\u63a5\u7d9a\u30c6\u30b9\u30c8\u3092\u3057\u307e\u3059\uff0e
\n\u521d\u56de\u63a5\u7d9a\u6642\u306b\u306f\u30db\u30b9\u30c8\u9375\u306e\u78ba\u8a8d\u304c\u5fc5\u8981\u3067\u3059\uff0eCodeberg\u306e\u30db\u30b9\u30c8\u9375\u306e\u9375\u6307\u7d0b\u306f\u4ee5\u4e0b\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\u78ba\u8a8d\u3057\u3066\u5165\u529b\u3057\u307e\u3057\u3087\u3046\uff0e
\n$ ssh -T git@codeberg.org\nThe authenticity of host 'codeberg.org (2a0a:4580:103f:c0de::1)' can't be established.\nED25519 key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g.\n+--[ED25519 256]--+\n| ++*+=. |\n|o +.+... |\n|oBo...+ o |\n|+o*o + OE |\n|o ... +.So |\n|. o . .o.+ |\n|.= o . .+ . |\n|..+.o ... |\n| oo .o. |\n+----[SHA256]-----+\nThis key is not known by any other names.\nAre you sure you want to continue connecting (yes/no/[fingerprint])? SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\nWarning: Permanently added 'codeberg.org' (ED25519) to the list of known hosts.\nConnection closed by 2a0a:4580:103f:c0de::1 port 22\n
\u63a5\u7d9a\u304c\u3046\u307e\u304f\u884c\u3051\u3070\u81ea\u5206\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u3084\uff0c\u9375\u306e\u30b3\u30e1\u30f3\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e
\n$ ssh -T git@codeberg.org\nHost key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\n+--[ED25519 256]--+\n| ++*+=. |\n|o +.+... |\n|oBo...+ o |\n|+o*o + OE |\n|o ... +.So |\n|. o . .o.+ |\n|.= o . .+ . |\n|..+.o ... |\n| oo .o. |\n+----[SHA256]-----+\nEnter passphrase for key '/home/matoken/.ssh/id_ed25519':\nAuthenticated to codeberg.org ([2a0a:4580:103f:c0de::1]:22) using \"publickey\".\nHi there, matoken! You've successfully authenticated with the key named matoken@l13, but Forgejo does not provide shell access.\nIf this is unexpected, please log in with password and setup Forgejo under another user.\n
\u3053\u3053\u3067\u306fmatoken@l13\u3068\u3044\u3046\u9375\u3092\u4f7f\u3044\uff0cmatoken\u3068\u3044\u3046\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3\u306b\u6210\u529f\u3057\u3066\u3044\u307e\u3059\uff0e
\n| \n Note \n | \n\nCodeberg\u306fport 443\u3067\u3082ssh\u63a5\u7d9aok\u306a\u306e\u3067\u3059\u304c\uff0c\u3053\u3053\u306e\u30c6\u30b9\u30c8\u306f443\u3092\u4f7f\u3046\u3068\u5931\u6557\u3059\u308b\u3088\u3046\u3067\u3059\uff0e\n | \n
\u3053\u306e\u72b6\u614b\u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u8a8d\u8a3c\u3092\u8a66\u307f\u308b\u3068\u5931\u6557\u3057\u307e\u3059\uff0e
\n$ ssh -T matoken@codeberg.org -o PasswordAuthentication=yes\nHost key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\n+--[ED25519 256]--+\n| ++*+=. |\n|o +.+... |\n|oBo...+ o |\n|+o*o + OE |\n|o ... +.So |\n|. o . .o.+ |\n|.= o . .+ . |\n|..+.o ... |\n| oo .o. |\n+----[SHA256]-----+\nmatoken@codeberg.org: Permission denied (publickey).\n
TOTP\u306e\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u3066\u3053\u306eSSH\u516c\u958b\u9375\u8a8d\u8a3c\u3092\u4f7f\u3046\u3088\u3046\u306b\u3059\u308b\u3068\u305d\u3053\u305d\u3053\u5b89\u5fc3\u306a\u611f\u3058\u3067\u3059\uff0e
\nDebian sid\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u66f4\u65b0\u3092\u3059\u308b\u3068\u65b0\u3057\u3044apt\u304c\u3084\u3063\u3066\u304d\u307e\u3057\u305f\uff0e\u305d\u3057\u3066apt-listchanges\u3067\u6c17\u306b\u306a\u308b\u8a18\u8ff0\u304c\u8868\u793a\u3055\u308c\u307e\u3057\u305f\uff0e
\n$ zcat /usr/share/doc/apt/NEWS.Debian.gz | head\napt (2.9.11) unstable; urgency=medium\n\n The ftp, rsh, and ssh methods have been removed. They have been unsupported\n and disabled since 1.8. Please, migrate to http(s) instead, or contribute\n an sftp method.\n\n If you need ad hoc access to a remote repository, you can usually run\n `python3 -m http.server` on that machine and use SSH port forwarding to\n run HTTP over SSH.\n
ftp, rsh, ssh\u30e1\u30bd\u30c3\u30c9\u304c\u524a\u9664\u3055\u308c\u305f\u3088\u3046\u3067\u3059\uff0e
\n\n
\u4ee3\u308f\u308a\u306bhttp(s)\u306b\u79fb\u884c\u3059\u308b\u304b\uff0csftp\u30e1\u30bd\u30c3\u30c9\u306b\u8ca2\u732e\u3057\u3066\u304f\u3060\u3055\u3044\u3068\u306e\u3053\u3068\uff0e
\n\u30a2\u30c9\u30db\u30c3\u30af\u30a2\u30af\u30bb\u30b9\u304c\u5fc5\u8981\u306a\u5834\u5408\u306fhttpd\u3092\u8d77\u52d5\u3057\u3066ssh\u30dd\u30fc\u30c8\u30d5\u30a9\u30ef\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u3044ssh\u7d4c\u7531\u3067http\u3092\u5229\u7528\u3059\u308b\u3088\u3046\u306b\u52e7\u3081\u3089\u308c\u3066\u3044\u307e\u3059\uff0e
\n\u81ea\u5206\u306esid\u74b0\u5883\u306esource.list\u3092\u78ba\u8a8d\u3059\u308b\u3068http\u3060\u3051\uff0c/etc/apt/source.list.d/* \u3092\u78ba\u8a8d\u3059\u308b\u3068\u3053\u3053\u306f\u5168\u3066https\u3092\u5229\u7528\u3057\u3066\u3044\u307e\u3057\u305f\uff0e\u3068\u3044\u3046\u3053\u3068\u3067\u3053\u306e\u74b0\u5883\u306f\u3053\u306e\u307e\u307e\u3067\u5927\u4e08\u592b\u305d\u3046\u3067\u3059\uff0e
\n$ grep ^deb\\ /etc/apt/sources.list\ndeb http://ftp.jp.debian.org/debian/ sid main contrib non-free non-free-firmware\n$ grep ^deb\\ /etc/apt/sources.list.d/*\n/etc/apt/sources.list.d/signal-xenial.list:deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main\n/etc/apt/sources.list.d/steam-stable.list:deb [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] https://repo.steampowered.com/steam/ stable steam\n/etc/apt/sources.list.d/tailscale.list:deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/debian sid main\n/etc/apt/sources.list.d/vscodium.list:deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main\n/etc/apt/sources.list.d/wezterm.list:deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *\n
\u8a66\u3057\u306bsource.list\u3092ftp\u306b\u66f8\u304d\u63db\u3048\u3066\u8a66\u3057\u3066\u307f\u307e\u3059\uff0eftp\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u306e\u3092\u78ba\u8a8d\u3057\u305f\u30ea\u30dd\u30b8\u30c8\u30ea\u3092 apt edit-sources \u3067source.list\u3092\u66f8\u304d\u63db\u3048\u3053\u3053\u3067\u30b5\u30cb\u30bf\u30a4\u30ba\u30c1\u30a7\u30c3\u30af\u304c\u8d70\u3063\u3066\u3044\u308b\u306f\u305a\u306a\u306e\u3067\u3059\u304c\u7279\u306b\u4f55\u3082\u8a00\u308f\u308c\u305a\u66f8\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f\uff0e\u305d\u306e\u5f8c apt update \u3092\u5b9f\u884c\u3057\u3066\u307f\u308b\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308aftp\u306f\u4f7f\u3048\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
$ curl -s ftp://ftp.jp.debian.org/debian/dists/sid/InRelease | head\n-----BEGIN PGP SIGNED MESSAGE-----\nHash: SHA256\n\nOrigin: Debian\nLabel: Debian\nSuite: unstable\nCodename: sid\nChangelogs: https://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog\nDate: Thu, 21 Nov 2024 02:25:33 UTC\nValid-Until: Thu, 28 Nov 2024 02:25:33 UTC\n
$ sudo apt update\n :\nError: The method driver /usr/lib/apt/methods/ftp could not be found.\nNotice: Is the package apt-transport-ftp installed?\n :\nError: Failed to fetch ftp://ftp.jp.debian.org/debian/dists/sid/InRelease \nError: Some index files failed to download. They have been ignored, or old ones used instead.\n\n
apt-transport-ftp \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u304b\u3068\u805e\u304b\u308c\u307e\u3059\u304c\u305d\u306e\u69d8\u306a\u3082\u306e\u306f\u306a\u3044\u306e\u3067\u3084\u306f\u308a\u4f7f\u3048\u306a\u3044\u3067\u3059\u306d\uff0e
\n\u305d\u306e\u4ed6\u306eapt-transport\u306f\u3053\u3093\u306a\u611f\u3058\uff0c\u3053\u306e\u4e2d\u3067\u306fhttps\u3068tor\u3057\u304b\u4f7f\u3063\u305f\u3053\u3068\u304c\u306a\u3044\u6c17\u304c\u3057\u307e\u3059\uff0e
$ apt-cache search apt-transport\napt - commandline package manager\napt-transport-https - transitional package for https support\nlibapt-pkg6.0t64 - package management runtime library\napt-transport-in-toto - apt transport method for in-toto supply chain verification\napt-transport-s3 - APT transport for privately held AWS S3 repositories\napt-transport-tor - APT transport for anonymous package downloads via Tor\n
\u3068\u3044\u3046\u3053\u3068\u3067\uff0csid\u3092\u4f7f\u3063\u3066\u3044\u308b\u4eba\u306f\u5c11\u306a\u3044\u3067\u3057\u3087\u3046\u304c\u6b21\u306eDebian 13\u3042\u305f\u308a\u304b\u3089\u3053\u308c\u304c\u964d\u3063\u3066\u304f\u308b\u3068\u601d\u3046\u306e\u3067\u65b0\u305f\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u7528\u610f\u3059\u308b\u5834\u5408\u3084dist-upgrade\u6642\u306b\u6c17\u3092\u3064\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u305d\u3046\u3067\u3059\uff0e
\n$ dpkg-query -W apt\napt 2.9.12\n$ lsb_release -dr\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\n$ arch\nx86_64\n
age \u3068\u3044\u3046\u6697\u53f7\u5316\u30c4\u30fc\u30eb\u3092\u77e5\u308a\u307e\u3057\u305f\uff0e\u3053\u306e age \u3067\u306f ssh \u306e\u516c\u958b\u9375\u3092\u4f7f\u3063\u3066\u6697\u53f7\u5316\uff0c\u79d8\u5bc6\u9375\u3067\u5fa9\u53f7\u5316\u304c\u51fa\u6765\u308b\u306e\u304c\u9762\u767d\u305d\u3046\u306a\u306e\u3067\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\n
\u4eca\u56de\u306f Upstream \u3068\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u540c\u3058\u3060\u3057 Raspberry Pi OS bookworm armhf \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5229\u7528\u3057\u307e\u3057\u305f\uff0e
\ngo install \u3067\u306e\u5c0e\u5165\u3082 Go \u304c\u5165\u3063\u3066\u3044\u308c\u3070\u7c21\u5358\uff0cGitHub \u306e releases \u306b\u3082\u3044\u304f\u3064\u304b\u306e\u30d0\u30a4\u30ca\u30ea\u304c\u3042\u308a\u307e\u3059\uff0e
\n\u305d\u306e\u4ed6\u5404\u7a2e\u74b0\u5883\u306b\u3082\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0e
$ sudo apt install age\n$ age --version\n1.1.1\n$ dpkg-query -W age\nage 1.1.1-1+b3\n$ age\nUsage:\n age [--encrypt] (-r RECIPIENT | -R PATH)... [--armor] [-o OUTPUT] [INPUT]\n age [--encrypt] --passphrase [--armor] [-o OUTPUT] [INPUT]\n age --decrypt [-i PATH]... [-o OUTPUT] [INPUT]\n\nOptions:\n -e, --encrypt Encrypt the input to the output. Default if omitted.\n -d, --decrypt Decrypt the input to the output.\n -o, --output OUTPUT Write the result to the file at path OUTPUT.\n -a, --armor Encrypt to a PEM encoded format.\n -p, --passphrase Encrypt with a passphrase.\n -r, --recipient RECIPIENT Encrypt to the specified RECIPIENT. Can be repeated.\n -R, --recipients-file PATH Encrypt to recipients listed at PATH. Can be repeated.\n -i, --identity PATH Use the identity file at PATH. Can be repeated.\n\nINPUT defaults to standard input, and OUTPUT defaults to standard output.\nIf OUTPUT exists, it will be overwritten.\n\nRECIPIENT can be an age public key generated by age-keygen (\"age1...\")\nor an SSH public key (\"ssh-ed25519 AAAA...\", \"ssh-rsa AAAA...\").\n\nRecipient files contain one or more recipients, one per line. Empty lines\nand lines starting with \"#\" are ignored as comments. \"-\" may be used to\nread recipients from standard input.\n\nIdentity files contain one or more secret keys (\"AGE-SECRET-KEY-1...\"),\none per line, or an SSH key. Empty lines and lines starting with \"#\" are\nignored as comments. Passphrase encrypted age files can be used as\nidentity files. Multiple key files can be provided, and any unused ones\nwill be ignored. \"-\" may be used to read identities from standard input.\n\nWhen --encrypt is specified explicitly, -i can also be used to encrypt to an\nidentity file symmetrically, instead or in addition to normal recipients.\n\nExample:\n $ age-keygen -o key.txt\n Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p\n $ tar cvz ~/data | age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age\n $ age --decrypt -i key.txt -o data.tar.gz data.tar.gz.age\n
age-keygen \u30b3\u30de\u30f3\u30c9\u3067 age \u7528\u306e\u9375\u30da\u30a2\u304c\u751f\u6210\u3067\u304d\u307e\u3059\uff0e public key \u3092\u5171\u6709\u3057\u307e\u3059\uff0e
$ age-keygen -o key.txt\nPublic key: age1asle7pc9uj5n3fxamxst286ejh24yv5nut0qtedmadsxdm38egvs6ez9jr\n$ cat key.txt\n# created: 2024-03-30T04:44:49+09:00\n# public key: age1asle7pc9uj5n3fxamxst286ejh24yv5nut0qtedmadsxdm38egvs6ez9jr\nAGE-SECRET-KEY-1VZVZ0VXNSP7D3XN6X545MT7EX89S2Z7F68G6CG0RZ9WKMGN0CW4STSVM26\n$ age-keygen -o key2.txt\nPublic key: age1vz7kedcgzvzk4n4ke50wdxthll9g3muhgwlv3vz37g926frzjvvst777qe\n
age public key \u3067\u6697\u53f7\u5316\uff0cage secret key \u3067\u5fa9\u53f7\u5316\u3057\u307e\u3059\uff0e
$ echo 'plain' > data\n$ age -o data.age -r age1asle7pc9uj5n3fxamxst286ejh24yv5nut0qtedmadsxdm38egvs6ez9jr data (1)\n$ age --decrypt -i key.txt -o - data.age (2)\nplain\n$ age -o data.age -r age1asle7pc9uj5n3fxamxst286ejh24yv5nut0qtedmadsxdm38egvs6ez9jr \\\n -r age1vz7kedcgzvzk4n4ke50wdxthll9g3muhgwlv3vz37g926frzjvvst777qe data (3)\n$ age --decrypt -i key.txt -o - data.age (4)\nplain\n$ age --decrypt -i key2.txt -o - data.age (5)\nplain\n
$ age --passphrase -o data.age data (1)\nEnter passphrase (leave empty to autogenerate a secure one):\nConfirm passphrase:\n$ age --passphrase -o data.age data (2)\nEnter passphrase (leave empty to autogenerate a secure one):\nage: using autogenerated passphrase \"resist-host-rabbit-rapid-choose-slender-legal-ramp-forward-scare\"\n$ age --passphrase --armor data (3)\nage: using autogenerated passphrase \"what-open-rifle-junior-meadow-grass-hurdle-cigar-hybrid-slide\"\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNjcnlwdCBxcGxLRjNySGliS3ZyUmUz\nTm5MMnVRIDE4ClQzVUhlUmJlSGQrSmdUcU1xaEo0ZkFUcGpLWGZpUnBEbjNPbDMy\nWDk4ZHcKLS0tIFRic2twRVFOVkJ3a2Y3UWZ3WEdxcG5iSi9qWk5TU1UydWllVG1G\nNlBmMkkKh1ok+t0EGZrBXEQujdb6JQLcIGyZXcnvJrAetajKdVImFUCHXu0=\n-----END AGE ENCRYPTED FILE-----\n
$ age --decrypt -o - ./data.age\nEnter passphrase:\nplain\n$ echo '-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNjcnlwdCBxcGxLRjNySGliS3ZyUmUz\nTm5MMnVRIDE4ClQzVUhlUmJlSGQrSmdUcU1xaEo0ZkFUcGpLWGZpUnBEbjNPbDMy\nWDk4ZHcKLS0tIFRic2twRVFOVkJ3a2Y3UWZ3WEdxcG5iSi9qWk5TU1UydWllVG1G\nNlBmMkkKh1ok+t0EGZrBXEQujdb6JQLcIGyZXcnvJrAetajKdVImFUCHXu0=\n-----END AGE ENCRYPTED FILE-----' | age --decrypt -o -\nEnter passphrase:\nplain\n
\u3053\u308c\u3092\u8a66\u3057\u305f\u304b\u3063\u305f\u306e\u3067\u3057\u305f\uff0e
\n$ age --armor -R ~/.ssh/id_ed25519.pub data\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGVSY0tCZyBZRUJD\nNUZ6OWpQWDlzK2JKbmszaVp1ak9TQ0NZWkxoM0JuRlhtTm1hNVdFCjZqV0RlRldI\ncjY4TDJJR1hRckxNUkw2QmoreGVoRURzRGhRYllZUjBXck0KLS0tIEJBaFVXa3J0\nRHFobkVzUnRLaDZaUDVHdnpTbklHYmozQThKKzVKT3haUkEKaRkef04BHGL2sDPy\nB9hl8CCpgJ57fOZtLBG8tPruAz5uASNhJss=\n-----END AGE ENCRYPTED FILE-----\n$ echo '-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGVSY0tCZyBZRUJD\nNUZ6OWpQWDlzK2JKbmszaVp1ak9TQ0NZWkxoM0JuRlhtTm1hNVdFCjZqV0RlRldI\ncjY4TDJJR1hRckxNUkw2QmoreGVoRURzRGhRYllZUjBXck0KLS0tIEJBaFVXa3J0\nRHFobkVzUnRLaDZaUDVHdnpTbklHYmozQThKKzVKT3haUkEKaRkef04BHGL2sDPy\nB9hl8CCpgJ57fOZtLBG8tPruAz5uASNhJss=\n-----END AGE ENCRYPTED FILE-----' | age -d -i ~/.ssh/id_ed25519\nplain\n
$ echo 'plain' | age --armor -R ./rsa1024.pub\nage: warning: recipients file \"./rsa1024.pub\": ignoring unsupported SSH key of type \"ssh-rsa\" at line 1\nage: error: failed to parse recipient file \"./rsa1024.pub\": \"./rsa1024.pub\": no recipients found\nage: report unexpected or unhelpful errors at https://filippo.io/age/report\n$ echo 'plain' | age --armor -R ./rsa2048.pub\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1yc2EgNXd4UUtBCmxZY2ZKczFr\nMkJ1akc2Y3JkUHQyN0JaRU1RTnN4NHFydjBwZE4vUml4d0JnZ0VQYnVxRUhXRFpx\nWkRCOWxpSG4KTnUzZCsvNmFGSnM0MzNkdEpSRWVyUEl1VVgxOHR3NFd6alJMMUlH\nQ3VYbTZDTDdYNUxoeTdnbE8zNlI5eWpCawpPMTVRZXhoTGNVWHRhRngybkVHVmxE\nQXVTRFJKOEFIVFQwWXFFZHRrdmU4UVhiV0lwbFVtQ0Vzb1ZzTnlBNXc5CjN4VW02\na21MZGxxRmhtY1pOZ1NsQjlBS0RmL1o3M0xNZ0RVQXRXS3pVSDVXS1UramQ5V3Nv\nNWhSZDBaYjhlSWkKTVUzM1dEZzltcWU3SEpPMGV6eG5ucHFqUGZDRWZ0eDNQNTUy\nRmZxdHdXUzBZamlrLzNFaGdWajVTeXZBREF1VwpFN2x4S0VnR0N6WmIxeXFuTjUr\nbGFnCi0tLSAzaytQQktGcHA4dG9OZjhGbGNZY2g1ZktUaHRsemxoNUNxeW9YTkVD\nQ2NJCnEqtAa7v2TJGtQWC2CglKZ9YeX698uiW90pBq13wqwxFxe26eUb\n$ echo 'plain' | age --armor -R ./rsa3072.pub\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1yc2EgZFNIbVJ3CmxTaERheUlS\nRDJ2dE8wVXZrWDRKMStQYkl4SW5RVExYUWlLTHcxVjRFRVBSWEVnQk81TThVaG5u\nQWZRYS9vVlQKZHppT25RYnZKaUFSbm5sSVhMZUVMTG1Fc2FPTUl4aFQvdmVEeXBG\nb1dDQ1loMEdYM0QyKzNIN2V6eStlbkQ2ZQpFeVJJeFovd3FzUzZSS3pNMG9YeEtp\nQm0rYitkeWFIR2N2T05tMHB0RW5TTWRvelBmOXdpN0tjVlhZUS8xWGxJClJBMjk3\nWDV5d3BBaFdWbWtFcjIyWHhHMy93cmsrUTd3cGdwaTAzMTN4M3RaQ0o5cUN3TzRw\ncklrTGpVUVBRSE4KNnA4MHhvMVJ6LzduM0JHaTNKNFZKRURuSjhZNldoV1h2N3Qw\nbTRMZ0xqaVkvOVJVR004a3A1bU9JSU9pK0ErKwpKdmtVcEphWk9zbzJ1eHdOV0k0\nRXpBYm9jY3RneDNJSm9mcWQ4SzY5bERxUjV0bWhCRFB5K210M29VL1ZKVGwvCmo1\neHQ4eFRIaDVFTVBaMnRlbkFGLzNZWFA4NVpWVlloVUc1YnlrdUFRSTJqRXdGR3Vl\nNkFWTjlyR05DQUxlMVcKN0xaQTA2bENBY09pZHNtL0dCcU5QVmFDQVVsNUI2eHlH\ndUYyTkc2QXRZN0k1WUZXTHV3UGxPWDgvdlJoNnE4NgoKLS0tICtSSUV0bnRRSjU1\nTUY3cjRJM3ZYV0x6ZXpLbXFnaEttYTZhY01nZzEzd28KLJcw48jawhSaZm1BZ7a1\nQm0770UO7troZcvViUfFJzHSXQsE4n4=\n-----END AGE ENCRYPTED FILE-----\n$ echo 'plain' | age --armor -R ./rsa4096.pub\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1yc2Egc0tyUVpRCnluWk1qUFdI\nS2w3c3hmK0ZyMmcvUmZVWUpKejF0RTlSalVzKzQ1QkpCMklHUjlCcGJIeGFKSVNv\nUVdSa2pRbnkKQm5OWHlocEUyQjZYZjRJanVkN2YyMWJKaThwd0hEWkkwQURnWUVF\nbkxnR2ZSTktRRDdEWHZaYTVuVSsvYUY1UQpCa3lMdURsamhWdm52RE0yaE53QUxX\nWnVaRWdPRExnL2lIYSs4SE9YZUlNTldidG5QTC9XQU1IUll2NTQ0RzBjCjJnL0lC\nemtTdDlaNlpQM1JEbHRDdnROWmV3VTNpMDRxcDdabVU3bU5xODg4eUJ3dWZwYnpG\nQWtnbWlzc3RVV2IKZkVnSmQyZ2pOaXluYmFhMllvZ0tKNzcwS3FBWlJtS29LNGYx\nY3dxSFV4UHZpcmJleHFFNXI5ekUxQzNlYzdIWgpackFqemdMV1JjRjdnY3RBTTky\nbDlXVDVrQktjZkszQk12L3hlSDhHTllIdkVIS2FERUtCbWgyaUNad0NuRjRCCjZK\nSUYxYXkyNE1oKzN5VUZ0a1VVQjRnOVBLRUF4VU0yOFJUcEtUZDU2OHFDT2djekxO\nY3o4eGhQay9vNnlMRDUKVm14KzlrS1hOU1JrYTVHYjBwZWZzYXVsNHhPMEY5bTJ4\nZWZZQW5LVVQxRjVBUUQ4eDBEbDNkRTFFTGNvL21Kcgp5YkkxR3FrMTJQdnA3MFFl\nckgvZjBvT3I2WlZ6Q1ZuM3JFeGczTXFwU3FCV3FWbVIrTk1sL0RSWEZwL2Q4NC9m\nCjlDZUJ2NXZnQU5BUUNrVzdPODM1WUxFTzVrT3Q1VGZISThtSzJPb2xvVnU0R2g0\nTlY5RmJnbWhJbnU3TGMvTHoKVEt1OUZwR1UvNlFEVmRnWHZvay8wSGhnZWgrcnRN\nZWZsRHd5YnlCS0ovNAotLS0gYWQ4WXBodENuNDBKVVkwK3c5YnpSeG5OdndCRWph\neW5aU1QvekRLWlhkdwpjWnxdCQrEjd0NbP2ed0AFRLYH94R8EQTGEyYDMwEuzhsk\nM8fb2A==\n-----END AGE ENCRYPTED FILE-----\n
RSA1024 \u3060\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3057\u305f\uff0e\u73fe\u5728 RSA \u306f 3072 \u304c\u898f\u5b9a\u5024\u3060\u3063\u305f\u3068\u601d\u3046\u306e\u3067\u9375\u5e33\u306e\u77ed\u3044 1024 \u306f\u8db3\u5207\u308a\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u3082\u3057\u308c\u306a\u3044\u3067\u3059\u306d\uff0e
\n$ echo 'plain' | age --armor -R ./rsa2048.pub -R ./rsa3072.pub -R ./rsa4096.pub -R ~/.ssh/id_ed25519.pub\n-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1yc2EgNXd4UUtBCjFaajdDV3hh\ndXRuNkNNRVpRTUJ2ZDI0ZkRObGdCRmpydlZNUDAzSjhXbGdsWXJZa1lyWnFzSFlo\nbXFJbjNpSFYKcHZrWisyek1MWjZvVlJtV3djUEY1ei82bVFISzdwYm96a2FYeXRR\namdxTEhjWllCcGJsSytQN3ZWay82clZEZwp4bG5HSmVGNEFFVW5xMEx4UXhlT3A0\neHBONUhkbU1qRnRPUUFoR3BldzVhamFrc0xBWVp4Y001bUdqNGROT0dmCkhOUCtF\nTytsbXRTU1Exait5bG9DRVR4ZjRTT3owY01JTGRyOUN4eWFnd0hmTDlOenlWRE12\na0ZrM2E4NkFweTEKMEZvZ3h2TzdOZlJ5YnVpYm1yOXFIUkV2MXI0QnZtT1VMTFRT\nZ2JDOGI4VGpYRVROb3J1TzAvd2xYTHozSVdhOQoyMVFQNHBxb3AzaUQwa0hqeE5C\nbEF3Ci0+IHNzaC1yc2EgZFNIbVJ3Cm9KcEoyZndZK0JCakFURWl2eUt4dHNqdExy\nK0dzNkRpUXF1U0dJSXFIMlFWOFhGcGtkNFRXd1BuVGJBSmZhNkgKNjZZZStZZFFi\nWko2dXFkQ2hKMHVIcWV0ekVaeUhBOTJoSnZUWnFacmVFczE4UnllZnp4cXZCQWE4\nckdFNU5nbQpNaXB4eHhaUG1vWE5HQ2xoRkF5amVPL3kvaUlPL0h6ZVNtL05lV2VK\nOGdkVmpGZjVSNVNOZ1NsbEc1b0NBODFlCkNQTTFWb3orNC9WVWdadThFN3YwUTNr\nYXNCaDZ5KzBSckJpeEdZWllYMml0RmFpTWNZc3FEbHhXaUM0YTU1emMKbXRvQzh2\nUG1lM1FWYzRreDJINGY1MEV0cnArTzdMaklVS1VWRE5haWV0UzlFOG9CN3U0dFNu\nMU0vVFpYVXRoNwp5aHRDc2ZoWWVBeGZwWTlyQ2ZIVjcxczZ1ajJoVy93dDFlVWsy\nNlF0ZEFCTHlBNTk1YlhTNmtKY1RPZ2tqZU94CjJkT3REWTRTZFZuR0pneDNtZjND\nUXVjMWRqeCtVODZEb2J6bkgxWm4ycGRxQWI0amVqdXNFdnJtdkFlZmZMUFYKdlVT\nekhlK1hQSFRuRFBmV09JWTUrSS9VNnQ5RTY2T0dEeG9ONVVXdFRVY0g1ZmdqTStR\nNDRUc21LQXhyK0dNbQoKLT4gc3NoLXJzYSBzS3JRWlEKc2FIQ20zUmRQYmhrRTlO\nbjF0V2lKZXhFWXVNcVJmdk5jNXhMaDdkdGZWcGc4WVVBbGdGZGhTM0dLSFpkbWlP\nSAo4aEl6U2xRTXhTTFUzTzhsWThtbngwZUl6VGQ1Z09IKzJWK29XNzNOL2ZMaEc4\nWkdxUkI0cXVHaS9IT0NTS3M0Ci8vYjJDczQrUzdaSmxrU0ZsOFU4VUk0Nzh3eHh6\nelYzOWJVaUxNbjM3cGRTdkd5Vlc3YWtHUjRiWDNoYU83WGYKNklxMkZCanBMZ0N5\nb2ZvN3VwZkNLcUxTM0FVNU1TMmczSFR1Nm9HMHJQdlIyemxwNWNjVktIWlRnSks2\nVWlwVAoyR3VQZmJCTGJSQ2xGemRWM1lUbmFhcFpmNE5ITmdjUFZZNTFaMW9ZcCtp\nQ0V6ajFwbjEyTkZvT3JRZ3NCK011Cm9EOFcyQTNBT2pOVk5mZDU1cFQ3TFE5MnNK\neEVxWE1uMUNadkhMTVZVcUdBRythZmJnVG81ZG93YlE4K2JLWkYKbTgrTmVOSTEx\nRWRqTXdRRDlmRjBrNUJpenZoenU0NnNzVmlxMmZKVERqTDdoZnlUZUNVaUxZNE91\nRHNsK2NmawpacUVZdU9sdUJEWE83Z1FYYnhFQU5pMlZQVVhiV2hDbzBhM0YwOFZ5\nNy9EclZLK29XTUJ3K25ldDV2dTZpVlgxCkxsN3ZMRjVJekZ2aXl6UnFaSXpoYzUr\nQWRQR0VjOUZPSnpnMk1uL0k4SW11VHdheW1xN25yR3VYbGNoNW9LTUkKUXNXVGFJ\nc3dXY0hxaURhSEllN1o0Rm9nQnZlck53V0R5YTdDYWltTURSbHBGc0JFTUZkL1hz\nMXRqTUNVNUs5MQoxNnFxN1AxenhYUFZnb0hMRDlnaWY3VmRCd0NnZk44UVNpb2Zk\nRUZ4U1Y4Ci0+IHNzaC1lZDI1NTE5IGVSY0tCZyBSNml6R2pvQnV6WWV2WmFHaFo5\nL0hTSFl5Y1h4S1lBNkFSZjNod29TV1dnCnhpVGNIVW44dnNrZlJyWWZxUGhsVGY1\nTlMyR0tkcjUxTnI3NStaL2UwM1kKLS0tIFg3VEg5MGNCZnJBNmU0NXUza1d1aVlM\ncmk0eXVab1RmTzhVTTZid1ZWclUKe1wXH51zJI3GYYwGVPhoXDcuV8vBZIcvGPQz\n5pSAkRa/YrHMrfk=\n-----END AGE ENCRYPTED FILE-----\n
RSA, ED25519 \u4e21\u65b9\u3092\u542b\u3080\u8907\u6570\u306e\u9375\u3067\u6697\u53f7\u5316\u3082\u554f\u984c\u306a\u304b\u3063\u305f\u3067\u3059\uff0e(\u7d19\u5e45\u3092\u3068\u308b\u306e\u3067\u3053\u3053\u306b\u306f\u8f09\u305b\u307e\u305b\u3093\u304c\u305d\u308c\u305e\u308c\u306e\u9375\u3067\u5fa9\u53f7\u3082\u5927\u4e08\u592b\u3067\u3057\u305f\uff0e)
\n$ wget https://github.com/FiloSottile.keys\n$ age -a -R ./FiloSottile.keys data\nage: warning: recipients file \"./FiloSottile.keys\": ignoring unsupported SSH key of type \"ecdsa-sha2-nistp256\" at line 1\nage: error: failed to parse recipient file \"./FiloSottile.keys\": \"./FiloSottile.keys\": no recipients found\nage: report unexpected or unhelpful errors at https://filippo.io/age/report\n$ dd if=FiloSottile.keys bs=20 count=1 2>/dev/null; echo\necdsa-sha2-nistp256\n
GitHub \u304b\u3089 age \u4f5c\u8005\u306e\u9375\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u6697\u53f7\u5316\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u304c\uff0c\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u9375\u5f62\u5f0f\u304c ed25519-sk \u306e\u3088\u3046\u3067 age \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u9375\u3060\u3063\u305f\u306e\u3067\u6697\u53f7\u5316\u51fa\u6765\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
\n| \n Note \n | \n\n \n \n\u9375\u306e\u5165\u624b\u4f8b \n
| \n
GPG \u3092\u516c\u958b\u3057\u3066\u3044\u306a\u3044\u4eba\u3067 GitHub \u306a\u3069\u3067 SSH\u9375\u3092\u516c\u958b\u3057\u3066\u3044\u308b\u4eba\u306f\u7d50\u69cb\u5c45\u308b\u6c17\u304c\u3059\u308b\u306e\u3067 SSH\u9375\u3067\u6697\u53f7\u5316\uff0c\u5fa9\u53f7\u5316\u304c\u3067\u304d\u308b\u3068\u4fbf\u5229\u305d\u3046\u3067\u3059\uff0e
\nopenssl \u3067\u3082\u51fa\u6765\u308b\u3057\u5c0e\u5165\u3055\u308c\u305f\u74b0\u5883\u3082\u591a\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u30b3\u30de\u30f3\u30c9\u304c\u7169\u96d1\uff0cage \u3060\u3068\u5229\u7528\u304c\u7c21\u5358\u306a\u306e\u3067\u666e\u53ca\u3059\u308c\u3070\u4fbf\u5229\u305d\u3046\u3067\u3059\uff0e
$ dpkg-query -W age openssh-client openssl\nage 1.1.1-1+b3\nopenssh-client 1:9.2p1-2+deb12u2\nopenssl 3.0.11-1~deb12u2+rpt1\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Raspbian\nDescription: Raspbian GNU/Linux 12 (bookworm)\nRelease: 12\nCodename: bookworm\n$ arch\narmv7l\n$ cat /proc/device-tree/model ;echo\nRaspberry Pi 3 Model B Rev 1.2\n
\u9e7f\u5150\u5cf6Linux \u52c9\u5f37\u4f1a 2023.11 \u3067DelGate \u3092\u6700\u8fd1\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3067\u52d5\u304b\u3059\u8a71\u304c\u3042\u3063\u305f\u306e\u3067\u30e1\u30e2\uff0e
\n\n
\u4ee5\u4e0b\u306eDeleGate \u306e\u9805\u76ee\u306e\u901a\u308a\uff0e
\n$ wget ftp://ftp.delegate.org/pub/DeleGate/delegate9.9.13.tar.gz ftp://ftp.delegate.org/pub/DeleGate/delegate9.9.13.tar.sign\n$ tar xf delegate9.9.13.tar.gz\n$ wget https://i-red.info/docs/dg2204.patch\n$ cd delegate9.9.13\n$ patch -p0 < ../dg2204.patch\n$ make CFLAGS=\"-Wno-narrowing -DHCASE=1\"\n
| \n Note \n | \n\n\u624b\u5143\u3067\u306f Debian sid amd64 \u53ca\u3073 Raspberry Pi OS bullseye armhf \u3067\u78ba\u8a8d\u3057\u307e\u3057\u305f\uff0e | \n
\u4eca\u56de\u8a66\u3057\u305f\u304b\u3063\u305f\u306e\u306f\u4ee5\u4e0b\u306e Telnet \u2192 SSH \u306e gateway
\n$ src/delegated -P8023 SERVER=telnet://-ssh\n-- ERROR: can't link the SSL/Crypto library.\n-- Hint: use -vl option to trace the required library,\n--- find it (ex. libssl.so.X.Y.Z) under /usr/lib or /lib,\n--- then set the library version as DYLIB='+,lib*.so.X.Y.Z'\n<DeleGate/9.9.13> [17373] -P8023 READY\n
$ nc localhost 8023\n''--\n-- @ @ localhost PROXY-telnet server DeleGate/9.9.13\n-- ( - ) { Hit '?' or enter `help' for help. }\nDeleGate/9.9.13 (October 31, 2014)\nAIST-Product-ID: 2000-ETL-198715-01, H14PRO-049, H15PRO-165, H18PRO-443\nCopyright (c) 1994-2000 Yutaka Sato and ETL,AIST,MITI\nCopyright (c) 2001-2014 National Institute of Advanced Industrial Science and Technology (AIST)\nWWW: http://www.delegate.org/delegate/\n-- -- -- This (proxy) service is maintained by 'matoken@gmail.com'\n\n>> Host name: matoken@localhost\n\u30ab\u30a8\u30eb\u61d0\u304b\u3057\u3044\u3067\u3059\u306d\uff0e
\nDebian sid amd64\u74b0\u5883\u3067mosh\u304c\u52d5\u304b\u306a\u304f\u306a\u3063\u305f\uff0e
\n\n\n | \n
\n
mosh-client\u306f\u52d5\u304f\u3051\u3069 ~/.ssh/config \u3092\u898b\u3066\u304f\u308c\u306a\u3044\u306e\u3067\u9762\u5012
\n\n | \n
mosh \u306f perl script
\n\n\n | \n
mosh-client \u306felf
\n\n\n | \n
sid\u3060\u3057Perl\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3082\u3042\u3063\u305f\u306e\u3067\u305d\u306e\u305b\u3044\u304b\u306a\u3068\u601d\u3063\u3066\u3044\u305f\u3051\u3069\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u3082\u76f4\u3089\u306a\u3044\uff0e
\ncpan\u3084cpanm\u3082\u52d5\u304b\u306a\u3044\uff0ecpan\u306f ~/perl5 \u3092\u898b\u3066\u3044\u308b\uff0e
\n\u6700\u8fd1Debian sid\u306ePerl\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u4e0a\u304c\u3063\u305f\u306e\u306b ~/perl5 \u3092\u66f4\u65b0\u3057\u3066\u3044\u306a\u3044\u306e\u3067\u4e0d\u6574\u5408\u3068\u306a\u3063\u3066\u3044\u305f\u3088\u3046\uff0e
\n\u4e00\u65e6 ~/perl5 \u3092\u9000\u907f\u3057\u3066\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\uff0e
\n\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u6642\u306a\u3069\u306b\u3082\u5d4c\u308a\u305d\u3046\uff0e
\n\n | \n
\u74b0\u5883
\n\n\n | \n
SSH VPN \u304c\u304a\u624b\u8efd\u306b\u5229\u7528\u3067\u304d\u308b sshuttle \u3092\u4e45\u3005\u306b\u4f7f\u304a\u3046\u3068\u3057\u305f\u3089\u5931\u6557\u3057\u307e\u3059\uff0e\u3044\u304f\u3064\u304b\u306eremotehost\u3092\u8a66\u3057\u3066\u3082\u3046\u307e\u304f\u3044\u304b\u306a\u3044\uff0e
\n$ sshuttle -v -r user@remotehost 0/0\r\nStarting sshuttle proxy.\r\nfirewall manager: Starting firewall with Python version 3.7.4\r\nfirewall manager: ready method name nat.\r\nIPv6 enabled: False\r\nUDP enabled: False\r\nDNS enabled: False\r\nUser enabled: False\r\nTCP redirector listening on ('127.0.0.1', 12300).\r\nStarting client with Python version 3.7.4\r\nc : connecting to server...\r\nHost key fingerprint is SHA256:kUoWT4bCu7+HiegN9R5tYqO5nnvpQPobzSk46T8WEwU\r\n+---[ECDSA 256]---+\r\n| .E...o |\r\n| o o= . |\r\n| +o + |\r\n| oo . . |\r\n| oo. S |\r\n| *++ o |\r\n| *.+=X+o |\r\n| ..=+X*=. |\r\n| .o+%B+o |\r\n+----[SHA256]-----+\r\nEnter passphrase for key '/home/matoken/.ssh/id_ed25519':\r\nAuthenticated to nnn.nnn.nnn.nnn ([nnn.nnn.nnn.nnn]:nn).\r\n-c:3: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses\r\nStarting server with Python version 3.7.3\r\n s: latency control setting = True\r\nc : Connected.\r\n s: auto-nets:False\r\nfirewall manager: setting up.\r\n>> iptables -t nat -N sshuttle-12300\r\n>> iptables -t nat -F sshuttle-12300\r\n>> iptables -t nat -I OUTPUT 1 -j sshuttle-12300\r\n>> iptables -t nat -I PREROUTING 1 -j sshuttle-12300\r\n>> iptables -t nat -A sshuttle-12300 -j RETURN --dest 127.0.0.1/32 -p tcp\r\n>> iptables -t nat -A sshuttle-12300 -j REDIRECT --dest 0.0.0.0/0 -p tcp --to-ports 12300 -m ttl ! --ttl 42\r\nfirewall manager: undoing changes.\r\n>> iptables -t nat -D OUTPUT -j sshuttle-12300\r\n>> iptables -t nat -D PREROUTING -j sshuttle-12300\r\n>> iptables -t nat -F sshuttle-12300\r\n>> iptables -t nat -X sshuttle-12300\r\nc : fatal: server died with error code 255\n\u6700\u5f8c\u306e\u884c\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u691c\u7d22\u3059\u308b\u3068\u4ee5\u4e0b\u306eIssue \u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e
\n\u53c2\u8003\u306b\u3057\u3066 -x remotehostip \u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e-x \u306f\u9664\u5916\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u63a5\u7d9a\u5148\u306eip \u3092\u6307\u5b9a\u3057\u3066\u9664\u5916\u3059\u308b\u3068OK\u306e\u3088\u3046\u3067\u3059\uff0e
NG $ sshuttle -r user@remotehost 0/0
OK $ sshuttle -r user@remotehost 0/0 -x remotehostip
VPN \u5bfe\u8c61\u306e\u30b5\u30d6\u30cd\u30c3\u30c8\u3068\u540c\u69d8 -x \u306b\u3082\u8907\u6570\u306e\u30b5\u30d6\u30cd\u30c3\u30c8/ip \u306e\u6307\u5b9a\u304c\u3067\u304d\u307e\u3059\uff0e
$ dpkg-query -W sshuttle\r\nsshuttle 0.78.5-1\r\n$ hostnamectl|grep -E 'Operating System|Architecture'\r\n Operating System: Debian GNU/Linux bullseye/sid\r\n\t Architecture: x86-64\n
\u3061\u306a\u307f\u306b sshuttle \u3092 Raspbian Buster \u3067\u8a66\u3059\u3068\u307e\u305f\u9055\u3046\u3053\u3093\u306a\u30a8\u30e9\u30fc\u306b\uff0e\u3067\u3082\u3084\u3063\u3071\u308a -x \u3067\u89e3\u6c7a\u3057\u307e\u3057\u305f\uff0e
:\r\nclient: Connected.\r\npacket_write_wait: Connection to 192.168.1.102 port 22: Broken pipe\r\nTraceback (most recent call last):\r\n File \"/usr/bin/sshuttle\", line 11, in <module>\r\n\tload_entry_point('sshuttle==0.78.5', 'console_scripts', 'sshuttle')()\r\n File \"/usr/lib/python3/dist-packages/sshuttle/cmdline.py\", line 82, in main\r\n\topt.sudo_pythonpath)\r\n File \"/usr/lib/python3/dist-packages/sshuttle/client.py\", line 787, in main\r\n\tseed_hosts, auto_hosts, auto_nets, daemon, to_nameserver)\r\n File \"/usr/lib/python3/dist-packages/sshuttle/client.py\", line 547, in _main\r\n\tssnet.runonce(handlers, mux)\r\n File \"/usr/lib/python3/dist-packages/sshuttle/ssnet.py\", line 598, in runonce\r\n\th.callback(s)\r\n File \"/usr/lib/python3/dist-packages/sshuttle/ssnet.py\", line 488, in callback\r\n\tself.flush()\r\n File \"/usr/lib/python3/dist-packages/sshuttle/ssnet.py\", line 439, in flush\r\n\twrote = _nb_clean(os.write, self.wsock.fileno(), self.outbuf[0])\r\n File \"/usr/lib/python3/dist-packages/sshuttle/ssnet.py\", line 79, in _nb_clean\r\n\treturn func(*args)\r\nBrokenPipeError: [Errno 32] Broken pipe\n$ dpkg-query -W sshuttle\r\nsshuttle 0.78.5-1\r\n$ lsb_release -d\r\nDescription: Raspbian GNU/Linux 10 (buster)\r\n$ uname -m\r\narmv6l\r\n$ cat /proc/device-tree/model ;echo\r\nRaspberry Pi Model B Rev 2\n
Ubuntu 18.04 LTS \u306esshuttle \u3067\u3082\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3053\u308c\u306f -x \u3092\u4ed8\u3051\u306a\u304f\u3066\u3082\u554f\u984c\u306a\u3057\u3067\u3057\u305f\uff0esshuttle 0.78.4 \u301c 0.78.5 \u306e\u9593\u306e\u4fee\u6b63\u3067\u306e\u5f71\u97ff\u3067\u3057\u3087\u3046\u304b?
$ dpkg-query -W sshuttle\r\nsshuttle 0.78.3-1ubuntu1\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.2 LTS\r\n$ uname -m\r\nx86_64\n
ssh \u306f\u653b\u6483\u304c\u591a\u3044\u3067\u3059\uff0e\u516c\u958b\u9375\u8a8d\u8a3c\u306b\u3057\u3066\u304a\u304f\u3068\u5927\u5206\u4fb5\u5165\u306b\u5f37\u304f\u306a\u308a\u307e\u3059\u304c\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u76f4\u63a5\u7e4b\u304c\u3063\u3066\u3044\u308b\u30b5\u30fc\u30d0\u3067\u306f\u653b\u6483\u306f\u3068\u3066\u3082\u591a\u3044\u3067\u3059\uff0e
\nEndlessh \u306fsshd \u306e\u4ee3\u308f\u308a\u306b\u8d77\u52d5\u3057\u3066\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u9001\u308b\u524d\u306e\u30c7\u30fc\u30bf\u306b\u307b\u307c\u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u3092\u3086\u3063\u304f\u308a\u3068\u914d\u4fe1\u3057\u7d9a\u3051\u3066\u653b\u6483\u8005\u306e\u8db3\u6b62\u3081\u3092\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u3088\u3046\u3067\u3059\uff0e
\n\u672c\u5f53\u306e sshd \u306f\u5225\u30dd\u30fc\u30c8\u3067\u8d77\u52d5\u3057\u3066\u305d\u3063\u3061\u3092\u4f7f\u3046\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e22\u756a\u3092\u7121\u304f\u3057\u3066 port knocking \u3084 sslh \u3092\u4f7f\u3046\u306a\u3069\u306e\u307b\u3046\u304c\u3044\u3044\u304b\u3082\u3067\u3059\u304c\u9762\u767d\u305d\u3046\u3067\u3059\uff0e
\u3068\u3044\u3046\u3053\u3068\u3067\u624b\u5143\u3067\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n$ git clone https://github.com/skeeto/endlessh\r\n$ cd endlessh\r\n$ git log |head -1\r\ncommit 548a7b1521b2912e7e133d0d9df50e0e514f1f2c\r\n$ make\n
$ ./endlessh -v -p22222 &\r\n[1] 22698\r\n2019-03-24T04:56:10.338Z Port 22222\r\n2019-03-24T04:56:10.338Z Delay 10000\r\n2019-03-24T04:56:10.338Z MaxLineLength 32\r\n2019-03-24T04:56:10.338Z MaxClients 4096\n
$ time ssh localhost -p 22222\r\n2019-03-24T04:56:19.510Z ACCEPT host=::1 port=59402 fd=4 n=1/4096\r\nssh_exchange_identification: No banner received\r\n\r\nreal 700m30.650s\r\nuser 0m0.040s\r\nsys 0m0.240s\r\n2019-03-24T16:37:00.162Z CLOSE host=::1 port=59402 fd=4 time=42040.652 bytes=73944\n
$ kill %1\r\n[1]+ Done ./endlessh -v -p22222\n
\u6570\u56de\u8a66\u3057\u307e\u3057\u305f\u304c\uff0c\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u306f700\u5206\u524d\u5f8c\u6355\u307e\u308a\u307e\u3057\u305f\uff0e\u5358\u306b\u3042\u308a\u3082\u306e\u306escript\u3092\u52d5\u304b\u3059\u30ec\u30d9\u30eb\u306e\u653b\u6483\u8005\u3067\u3042\u308c\u3070\u30c4\u30fc\u30eb\u304c\u5bfe\u5fdc\u3059\u308b\u307e\u3067\u306f\u59a8\u5bb3\u306b\u306a\u308a\u305d\u3046\u3067\u3059\uff0e
\n$ git log |head -1\r\ncommit 548a7b1521b2912e7e133d0d9df50e0e514f1f2c\r\n$ dpkg-query -W openssh-client\r\nopenssh-client 1:7.9p1-9\r\n$ lsb_release -dr\r\nDescription: Debian GNU/Linux buster/sid\r\nRelease: unstable\r\n$ uname -m\r\nx86_64\n
\u6700\u8fd1 shutdown \u306e man \u3092\u898b\u6bd4\u3079\u305f\u308a\u3057\u3066\u305f\u306e\u3067\u3059\u304c\uff0c\u305d\u306e\u3068\u304d\u306b systemd, sysvinit \u4ee5\u5916\u306b molly-guard \u3068\u3044\u3046\u898b\u77e5\u3089\u306c\u3082\u306e\u304c\uff0e
$ apt-file search /sbin/shutdown\r\nmolly-guard: /sbin/shutdown\r\nsystemd-sysv: /sbin/shutdown\r\nsysvinit-core: /sbin/shutdown\n
\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u3092\u307f\u308b\u3068 shutdown \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3092\u7f6e\u304d\u63db\u3048\u3066 ssh \u63a5\u7d9a\u6642\u306b\u306f\u78ba\u8a8d\u306e\u305f\u3081\u306b\u30db\u30b9\u30c8\u540d\u3092\u805e\u304f\u3088\u3046\u306b\u306a\u308b\u3088\u3046\u3067\u3059\uff0e
\n\u3053\u308c\u306b\u3088\u308a\u624b\u5143\u306ePC\u306e\u518d\u8d77\u52d5\u3092\u3057\u305f\u3064\u3082\u308a\u304c\u30ea\u30e2\u30fc\u30c8\u306e\u30b5\u30fc\u30d0\u3092\u518d\u8d77\u52d5\u3057\u3066\u3057\u307e\u3046\u306a\u3069\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u9632\u3052\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff0e
$ apt show molly-guard\r\nPackage: molly-guard\r\nVersion: 0.6.4\r\nPriority: extra\r\nSection: admin\r\nMaintainer: Francois Marier <francois@debian.org>\r\nInstalled-Size: 57.3 kB\r\nDepends: procps\r\nEnhances: init, kexec-tools, mosh, openssh-server, pm-utils, systemd, sysvinit, upstart\r\nTag: implemented-in::shell, interface::commandline, network::server,\r\n protocol::ssh, role::program, scope::utility\r\nDownload-Size: 13.8 kB\r\nAPT-Manual-Installed: yes\r\nAPT-Sources: http://ftp.jp.debian.org/debian stretch/main amd64 Packages\r\nDescription: protects machines from accidental shutdowns/reboots\r\n The package installs a shell script that overrides the existing\r\n shutdown/reboot/halt/poweroff/coldreboot/pm-hibernate/pm-suspend* commands\r\n and first runs a set of scripts, which all have to exit successfully,\r\n before molly-guard invokes the real command.\r\n .\r\n One of the scripts checks for existing SSH sessions. If any of the four\r\n commands are called interactively over an SSH session, the shell script\r\n prompts you to enter the name of the host you wish to shut down. This should\r\n adequately prevent you from accidental shutdowns and reboots.\r\n .\r\n molly-guard diverts the real binaries to /lib/molly-guard/. You can bypass\r\n molly-guard by running those binaries directly.\n
\u65e9\u901f\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e
\n$ sudo apt install molly-guard\r\n :\r\npackage diverts others to: /lib/molly-guard/coldreboot\r\n/sbin/halt\r\npackage diverts others to: /lib/molly-guard/halt\r\n/sbin/pm-hibernate\r\n/sbin/pm-suspend\r\n/sbin/pm-suspend-hybrid\r\n/sbin/poweroff\r\npackage diverts others to: /lib/molly-guard/poweroff\r\n/sbin/reboot\r\npackage diverts others to: /lib/molly-guard/reboot\r\n/sbin/shutdown\r\npackage diverts others to: /lib/molly-guard/shutdown\n
\u3053\u306e\u3042\u305f\u308a\u306e\u30b3\u30de\u30f3\u30c9\u304c\u7f6e\u304d\u63db\u308f\u3063\u3066\u3044\u307e\u3059\uff0e
\n$ ls -l /sbin | grep molly\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 coldreboot -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 halt -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 pm-hibernate -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 pm-suspend -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 pm-suspend-hybrid -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 poweroff -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 reboot -> /lib/molly-guard/molly-guard\r\nlrwxrwxrwx 1 root root 28 Aug 16 2016 shutdown -> /lib/molly-guard/molly-guard\n
\u30b3\u30de\u30f3\u30c9\u985e\u306f /lib/molly-guard \u4ee5\u4e0b\u306b\u9000\u907f\u3055\u308c\u308b\u3088\u3046\u3067\u3059\uff0e
$ ls -lA /lib/molly-guard\r\ntotal 48\r\n-rwxr-xr-x 1 root root 18952 Feb 13 2017 halt\r\n-rwxr-xr-x 1 root root 2767 Aug 16 2016 molly-guard\r\nlrwxrwxrwx 1 root root 4 Feb 13 2017 poweroff -> halt\r\nlrwxrwxrwx 1 root root 4 Feb 13 2017 reboot -> halt\r\n-rwxr-xr-x 1 root root 23368 Feb 13 2017 shutdown\n
$ ls -lA /lib/molly-guard\r\ntotal 4\r\nlrwxrwxrwx 1 root root 14 Jun 14 05:20 halt -> /bin/systemctl\r\n-rwxr-xr-x 1 root root 2767 Aug 16 2016 molly-guard\r\nlrwxrwxrwx 1 root root 14 Jun 14 05:20 poweroff -> /bin/systemctl\r\nlrwxrwxrwx 1 root root 14 Jun 14 05:20 reboot -> /bin/systemctl\r\nlrwxrwxrwx 1 root root 14 Jun 14 05:20 shutdown -> /bin/systemctl\n
ssh \u7d4c\u7531\u3067 shutdown(sysvinit) \u3092\u8a66\u307f\u308b\u3068\u3053\u306e\u3088\u3046\u306b hostname \u3092\u6c42\u3081\u3089\u308c\u307e\u3059\uff0e\u3053\u3053\u3067\u8aa4\u3063\u305f hostname \u3092\u66f8\u304f\u3068 shutdown \u304c\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u307e\u3057\u305f\uff0e
\n$ sudo shutdown -f -P -h +10 \"kernel update (`uname -r`)\"\r\nW: molly-guard: SSH session detected!\r\nPlease type in hostname of the machine to shutdown: desktop\r\nGood thing I asked; I won't shutdown debian ...\r\nW: aborting shutdown due to 30-query-hostname exiting with code 1.\n
\u6b63\u3057\u3044 hostname \u3092\u6307\u5b9a\u3059\u308b\u3068 shutdown \u304c\u547c\u3070\u308c\u307e\u3059\uff0e
\n$ sudo shutdown -f -P -h +10 \"kernel update (`uname -r`)\"\r\nW: molly-guard: SSH session detected!\r\nPlease type in hostname of the machine to shutdown: debian\r\n\r\nBroadcast message from root@debian (pts/0) (Thu Sep 27 06:15:28 2018):\r\n\r\nkernel update (4.9.0-3-amd64)\r\nThe system is going DOWN for system halt in 10 minutes!\r\n^C\r\nShutdown cancelled.\n
ssh\u7d4c\u7531\u3067\u306a\u3044\u5834\u5408\u306f molly-guard \u306f\u3059\u3050\u306b shutdown \u3092\u547c\u3073\u307e\u3059\uff0e
\n$ sudo shutdown -f -P -h +10 'poweroff'\r\n^C\r\nShutdown cancelled.\n
$ dpkg-query -W systemd-sysv molly-guard\r\nmolly-guard 0.6.4\r\nsystemd-sysv 232-25+deb9u4\r\n$ dpkg-query -W sysvinit-core\r\nsysvinit-core 2.88dsf-59.9\r\n$ cat /etc/os-release\r\nPRETTY_NAME=\"Debian GNU/Linux 9 (stretch)\"\r\nNAME=\"Debian GNU/Linux\"\r\nVERSION_ID=\"9\"\r\nVERSION=\"9 (stretch)\"\r\nID=debian\r\nHOME_URL=\"https://www.debian.org/\"\r\nSUPPORT_URL=\"https://www.debian.org/support\"\r\nBUG_REPORT_URL=\"https://bugs.debian.org/\"\r\n$ cat /etc/debian_version\r\n9.5\r\n$ uname -m\r\nx86_64\n
[janog:14329] \u3088\u308a\uff0e
\nWindows 10\u6a19\u6e96\u306essh-keygen\u3067\u9375\u3092\u4f5c\u308b\u3068\u6a19\u6e96\u3067 %HOMEPATH%/.ssh \u3067\u9375\u304c\u7ba1\u7406\u3055\u308c\u308b\u3088\u3046\u3060\u3051\u3069\u3053\u3053\u304b\u3089\u6d88\u3057\u305f\u9375\u304c\u518d\u8d77\u52d5\u5f8c\u3082\u4f7f\u3048\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u8a71\u304b\u3089\u306f\u3058\u307e\u3063\u3066\u3044\u308b\uff0e
HKCU\\Software\\OpenSSH\\Agent\\Keys \u4ee5\u4e0b\u306b\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u3089\u3057\u3044\uff0e
\u4ee5\u4e0b\u306escript\u3067\u30ec\u30b8\u30b9\u30c8\u30ea\u5185\u306e\u9375\u304c\u53d6\u308a\u51fa\u305b\u308b\u3088\u3046\uff0e
\n\n\u4eca\u74b0\u5883\u304c\u306a\u3044\u3051\u3069\u306a\u3093\u304b\u5d4c\u308a\u305d\u3046\u3060\u3057\u4eca\u5ea6\u8a66\u3057\u3066\u307f\u3088\u3046\uff0e
\n", "content_text": "[janog:14329] \u3088\u308a\uff0e\n\nJanog Mailing List (Archive\u306f\u3042\u308b\u3051\u3069\u8981login)\n\nWindows 10\u6a19\u6e96\u306essh-keygen\u3067\u9375\u3092\u4f5c\u308b\u3068\u6a19\u6e96\u3067 %HOMEPATH%/.ssh \u3067\u9375\u304c\u7ba1\u7406\u3055\u308c\u308b\u3088\u3046\u3060\u3051\u3069\u3053\u3053\u304b\u3089\u6d88\u3057\u305f\u9375\u304c\u518d\u8d77\u52d5\u5f8c\u3082\u4f7f\u3048\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u8a71\u304b\u3089\u306f\u3058\u307e\u3063\u3066\u3044\u308b\uff0e\n\nExtracting SSH Private Keys from Windows 10 ssh-agent\n\nHKCU\\Software\\OpenSSH\\Agent\\Keys \u4ee5\u4e0b\u306b\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u3089\u3057\u3044\uff0e\n\u4ee5\u4e0b\u306escript\u3067\u30ec\u30b8\u30b9\u30c8\u30ea\u5185\u306e\u9375\u304c\u53d6\u308a\u51fa\u305b\u308b\u3088\u3046\uff0e\n\nGitHub – ropnop/windows_sshagent_extract: PoC code to extract private keys from Windows 10's built in ssh-agent service\n\n\u4eca\u74b0\u5883\u304c\u306a\u3044\u3051\u3069\u306a\u3093\u304b\u5d4c\u308a\u305d\u3046\u3060\u3057\u4eca\u5ea6\u8a66\u3057\u3066\u307f\u3088\u3046\uff0e", "date_published": "2018-05-31T06:30:49+09:00", "date_modified": "2018-05-31T06:31:54+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ssh", "Windows10", "\u672a\u5206\u985e" ] } ] }