XNUMXãæã®éçºæéãçµãŠ è§£æŸãã ãSSH 2.0 ããã³ SFTP ãããã³ã«ãä»ããŠåäœããããã®ãªãŒãã³ãªã¯ã©ã€ã¢ã³ãããã³ãµãŒããŒã®å®è£ ã
OpenSSH 8.2 ã®ãªãªãŒã¹ã«ãããäž»ãªæ¹åç¹ã¯ããããã³ã«ããµããŒãããããã€ã¹ã䜿çšã㊠XNUMX èŠçŽ èªèšŒã䜿çšã§ããããã«ãªã£ãããšã§ããã ãã¢ã©ã€ã¢ã³ã¹ã«ãã£ãŠéçºãããŸãã ã U2F ã䜿çšãããšããŠãŒã¶ãŒã®ç©ççãªååšã確èªããããã®äœã³ã¹ãã®ããŒããŠã§ã¢ ããŒã¯ã³ãäœæã§ããUSBãBluetoothããŸã㯠NFC çµç±ã§ãŠãŒã¶ãŒãšå¯Ÿè©±ã§ããŸãã ãã®ãããªããã€ã¹ã¯ãWeb ãµã€ãã§ã® XNUMX èŠçŽ èªèšŒã®ææ®µãšããŠå®£äŒãããŠããããã§ã«äž»èŠãªãã©ãŠã¶ã§ãµããŒããããŠãããYubicoãFeitianãThetisãKensington ãªã©ã®ããŸããŸãªã¡ãŒã«ãŒã«ãã£ãŠè£œé ãããŠããŸãã
ãŠãŒã¶ãŒã®ååšã確èªããããã€ã¹ãšå¯Ÿè©±ããããã«ãæ°ããã㌠ã¿ã€ããecdsa-skãããã³ãed25519-skãã OpenSSH ã«è¿œå ãããŸããããããã¯ãECDSA ããã³ Ed25519 ããžã¿ã«çœ²åã¢ã«ãŽãªãºã ãš SHA-256 ããã·ã¥ãçµã¿åãããŠäœ¿çšââããŸãã ããŒã¯ã³ãšå¯Ÿè©±ããããã®ããã·ãŒãžã£ã¯äžéã©ã€ãã©ãªã«é 眮ãããŸããäžéã©ã€ãã©ãªã¯ãPKCS#11 ãµããŒãã®ã©ã€ãã©ãªãšåæ§ã®æ¹æ³ã§ããŒããããã©ã€ãã©ãªã®æäžäœã®ã©ãããŒã§ãã ãUSB çµç±ã§ããŒã¯ã³ãšéä¿¡ããããã®ããŒã«ãæäŸããŸã (FIDO U2F/CTAP 1 ããã³ FIDO 2.0/CTAP 2 ãããã³ã«ããµããŒããããŠããŸã)ã OpenSSHéçºè ãçšæããäžéã©ã€ãã©ãªlibsk-libfido2 ã³ã¢ liffido2 ãšåæ§ã« OpenBSDçšã
èªèšŒããŠããŒãçæããã«ã¯ãèšå®ã§ãSecurityKeyProviderããã©ã¡ãŒã¿ãæå®ããããå€éšã©ã€ãã©ãª libsk-libfido2.so ãžã®ãã¹ã瀺ã SSH_SK_PROVIDER ç°å¢å€æ°ãèšå®ããå¿
èŠããããŸã (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.ããã§ïŒã ã¬ã€ã€ãŒ ã©ã€ãã©ãªã®çµã¿èŸŒã¿ãµããŒã (--with-security-key-builtin) ã䜿çšã㊠openssh ãæ§ç¯ããããšãã§ããŸãããã®å ŽåããSecurityKeyProvider=internalããã©ã¡ãŒã¿ãŒãèšå®ããå¿
èŠããããŸãã
次ã«ããssh-keygen -t ecdsa-skããå®è¡ããããããŒããã§ã«äœæããã³èšå®ãããŠããå Žåã¯ããsshãã䜿çšããŠãµãŒããŒã«æ¥ç¶ããå¿
èŠããããŸãã ssh-keygen ãå®è¡ãããšãçæãããéµãã¢ã¯ã~/.ssh/id_ecdsa_skãã«ä¿åãããä»ã®éµãšåæ§ã«äœ¿çšã§ããŸãã
å ¬éã㌠(id_ecdsa_sk.pub) ã¯ãauthorized_keys ãã¡ã€ã«å ã®ãµãŒããŒã«ã³ããŒããå¿ èŠããããŸãã ãµãŒããŒåŽã§ã¯ããžã¿ã«çœ²åã®ã¿ãæ€èšŒãããããŒã¯ã³ãšã®å¯Ÿè©±ã¯ã¯ã©ã€ã¢ã³ãåŽã§å®è¡ãããŸã (ãµãŒããŒã« libsk-libfido2 ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãããããµãŒããŒã¯ãecdsa-skãã㌠ã¿ã€ãããµããŒãããå¿ èŠããããŸã)ã ã çæãããç§å¯éµ (id_ecdsa_sk) ã¯æ¬è³ªçã«éµãã³ãã«ã§ãããU2F ããŒã¯ã³åŽã«ä¿ç®¡ãããŠããç§å¯ã·ãŒã±ã³ã¹ãšçµã¿åãããŠã®ã¿å®éã®éµã圢æããŸãã id_ecdsa_sk ããŒãæ»æè ã®æã«æž¡ã£ãå ŽåãèªèšŒã«åæ Œããã«ã¯ããŒããŠã§ã¢ ããŒã¯ã³ãžã®ã¢ã¯ã»ã¹ãå¿ èŠã«ãªããŸããããããªããã°ãid_ecdsa_sk ãã¡ã€ã«ã«ä¿åãããŠããç§å¯ããŒã¯åœ¹ã«ç«ã¡ãŸããã
ããã«ãããã©ã«ãã§ã¯ãããŒã䜿çšããŠäœããã®æäœãå®è¡ãããšãïŒçæäžããã³èªèšŒäžã®äž¡æ¹ïŒããŠãŒã¶ãŒã®ç©ççãªååšãããŒã«ã«ã§ç¢ºèªããå¿ èŠããããŸããããšãã°ãããŒã¯ã³ã®ã»ã³ãµãŒã«è§Šããããšãææ¡ãããŠããŸãããããã«ãããŠãŒã¶ãŒã®ç©ççãªååšã確èªããããšãå°é£ã«ãªããŸããæ¥ç¶ãããããŒã¯ã³ã䜿çšããŠã·ã¹ãã ã«å¯ŸããŠãªã¢ãŒãæ»æãå®è¡ããŸãã å¥ã®é²åŸ¡ç·ãšããŠãssh-keygen ã®èµ·åãã§ãŒãºäžã«ãã¹ã¯ãŒããæå®ããŠã㌠ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
OpenSSH ã®æ°ããããŒãžã§ã³ã§ã¯ã次ã®çç±ã«ãããSHA-1 ããã·ã¥ã䜿çšããã¢ã«ãŽãªãºã ãä»åŸå»æ¢ãããããšãçºè¡šãããŸããã ç¹å®ã®ãã¬ãã£ãã¯ã¹ã«ããè¡çªæ»æã®æå¹æ§ (è¡çªãéžæããã³ã¹ãã¯çŽ 45 ãã«ãšæšå®ãããŸã)ã ä»åŸã®ãªãªãŒã¹ã® XNUMX ã€ã§ã¯ãå ¬ééµããžã¿ã«çœ²åã¢ã«ãŽãªãºã ãssh-rsaãã䜿çšããæ©èœãããã©ã«ãã§ç¡å¹ã«ããäºå®ã§ãããã®ã¢ã«ãŽãªãºã ã¯ãSSH ãããã³ã«ã®å ã® RFC ã§èšåãããŠãããå®éã«åºãæ®åããŠããŸã (䜿çšããã¹ããããã)ãã·ã¹ãã ã« ssh-rsa ãå«ãŸããŠããªãå Žåã¯ããªãã·ã§ã³ã-oHostKeyAlgorithms=-ssh-rsaãã䜿çšã㊠ssh çµç±ã§æ¥ç¶ã詊ã¿ãããšãã§ããŸãã
OpenSSH ã®æ°ããã¢ã«ãŽãªãºã ãžã®ç§»è¡ãã¹ã ãŒãºã«ããããã«ãå°æ¥ã®ãªãªãŒã¹ã§ã¯ UpdateHostKeys èšå®ãããã©ã«ãã§æå¹ã«ãªããã¯ã©ã€ã¢ã³ããããä¿¡é Œæ§ã®é«ãã¢ã«ãŽãªãºã ã«èªåçã«ç§»è¡ãããŸãã ç§»è¡ã«æšå¥šãããã¢ã«ãŽãªãºã ã«ã¯ãRFC2 RSA SHA-256 ã«åºã¥ã rsa-sha512-8332/2 (OpenSSH 7.2 以éãµããŒããããããã©ã«ãã§äœ¿çšããã)ãssh-ed25519 (OpenSSH 6.5 以éãµããŒã)ãããã³ ecdsa-sha2-nistp256/384/521 ããŒã¹ãå«ãŸããŸãã RFC5656 ECDSA (OpenSSH 5.7 以éã§ãµããŒã)ã
OpenSSH 8.2 ã§ã¯ããssh-rsaãã䜿çšããŠæ¥ç¶ããæ©èœã¯åŒãç¶ãå©çšã§ããŸããããã®ã¢ã«ãŽãªãºã ã¯ãæ°ããèšŒææžã®ããžã¿ã«çœ²åã«èš±å¯ãããã¢ã«ãŽãªãºã ãå®çŸ©ãã CASignatureAlgorithms ãªã¹ãããåé€ãããŸããã åæ§ã«ãdiffie-hellman-group14-sha1 ã¢ã«ãŽãªãºã ã¯ããµããŒããããŠããããã©ã«ãã®éµäº€æã¢ã«ãŽãªãºã ããåé€ãããŸããã èšŒææžã§ã® SHA-1 ã®äœ¿çšã¯è¿œå ã®ãªã¹ã¯ã䌎ãããšã«æ³šæããŠãã ãããããã¯ãæ»æè ãæ¢åã®èšŒææžã®è¡çªãæ€çŽ¢ããæéã¯ç¡å¶éã§ããããã¹ã ããŒã«å¯Ÿããæ»æã®æéã¯æ¥ç¶ã¿ã€ã ã¢ãŠã (LoginGraceTime) ã«ãã£ãŠå¶éãããããã§ãã ïŒã
ssh-keygen ãå®è¡ãããšãããã©ã«ãã§ rsa-sha2-512 ã¢ã«ãŽãªãºã ã䜿çšãããããã«ãªããŸããããã㯠OpenSSH 7.2 以éã§ãµããŒããããŠãããå€ã OpenSSH ãªãªãŒã¹ãå®è¡ããŠããã·ã¹ãã ã§ OpenSSH 8.2 ã§çœ²åãããèšŒææžãåŠçããããšãããšãäºææ§ã®åé¡ãçºçããå¯èœæ§ããããŸã (ãã®åé¡ãåé¿ãããã)ã眲åãçæããå Žåã¯ããssh-keygen -t ssh-rsaããæç€ºçã«æå®ããããOpenSSH 2 以éã§ãµããŒããããŠãã ecdsa-sha256-nistp384/521/5.7 ã¢ã«ãŽãªãºã ã䜿çšã§ããŸãã
ãã®ä»ã®å€æŽ:
- Include ãã£ã¬ã¯ãã£ãã sshd_config ã«è¿œå ãããŸãããããã«ãããæ§æãã¡ã€ã«ã®çŸåšã®äœçœ®ã«ä»ã®ãã¡ã€ã«ã®å 容ãå«ããããšãã§ããŸã (ãã¡ã€ã«åãæå®ãããšãã«ã°ãã ãã¹ã¯ã䜿çšã§ããŸã)ã
- ãno-touch-requiredããªãã·ã§ã³ã ssh-keygen ã«è¿œå ãããŸãããããã«ãããããŒã®çææã«ããŒã¯ã³ãžã®ã¢ã¯ã»ã¹ãç©ççã«ç¢ºèªããå¿ èŠããªããªããŸãã
- å ¬éããŒèªèšŒã«é¢é£ããããŸããŸãªãªãã·ã§ã³ãçµã¿åããã PubkeyAuthOptions ãã£ã¬ã¯ãã£ãã sshd_config ã«è¿œå ãããŸããã çŸåšãããŒã¯ã³èªèšŒã®ç©ççååšãã§ãã¯ãã¹ãããããã«ã¯ããno-touch-requiredããã©ã°ã®ã¿ããµããŒããããŠããŸãã åæ§ã«ããno-touch-requiredããªãã·ã§ã³ãauthorized_keysãã¡ã€ã«ã«è¿œå ãããŠããŸãã
- ã-O write-attestation=/pathããªãã·ã§ã³ã ssh-keygen ã«è¿œå ããŠãããŒã®çææã«è¿œå ã® FIDO æ§æèšŒæèšŒææžãæžã蟌ãããšãã§ããããã«ããŸããã OpenSSH ã¯ãŸã ãããã®èšŒææžã䜿çšããŸããããåŸã§ããŒãä¿¡é Œã§ããããŒããŠã§ã¢ ã¹ãã¢ã«é 眮ãããŠããããšã確èªããããã«äœ¿çšã§ããŸãã
- ssh ããã³ sshd èšå®ã§ãIPQoS ãã£ã¬ã¯ãã£ããä»ããŠãã©ãã£ãã¯ã®åªå é äœä»ãã¢ãŒããèšå®ã§ããããã«ãªããŸããã (ãããããšã®åŽåãå°ãªãåäœ)ã
- ssh ã§ã¯ãå€ãAddKeysToAgent=yesããèšå®ãããšãããŒã«ã³ã¡ã³ã ãã£ãŒã«ããå«ãŸããŠããªãå ŽåãããŒãžã®ãã¹ãã³ã¡ã³ããšããŠç€ºãããŒã ssh-agent ã«è¿œå ãããŸãã ã§
ssh-keygen ãš ssh-agent ããã©ã€ãã©ãª ãã¹ã®ä»£ããã« PKCS#11 ã©ãã«ãš X.509 ãµããžã§ã¯ãåãããŒå ã®ã³ã¡ã³ããšããŠäœ¿çšããããã«ãªããŸããã - DSA ããã³ ECDSA ããŒã® PEM ã ssh-keygen ã«ãšã¯ã¹ããŒãããæ©èœã远å ãããŸããã
- FIDO/U2F ããŒã¯ã³ ã¢ã¯ã»ã¹ ã©ã€ãã©ãªãåé¢ããããã«äœ¿çšãããæ°ããå®è¡å¯èœãã¡ã€ã« ssh-sk-helper ã远å ããŸããã
- zlib ã©ã€ãã©ãªã®ãµããŒãã䜿çšããŠã³ã³ãã€ã«ããããã«ãssh ããã³ sshd ã«ã--with-zlibããã«ã ãªãã·ã§ã³ã远å ããŸããã
- RFC4253ã®èŠæ±ã«åŸããæ¥ç¶äžã«è¡šç€ºããããããŒã«MaxStartupsã®å¶éè¶ éã«ããã¢ã¯ã»ã¹ãããã¯ã«é¢ããèŠåã衚瀺ãããŸãã 蚺æãç°¡çŽ åããããã«ãps ãŠãŒãã£ãªãã£ã®äœ¿çšæã«è¡šç€ºããã sshd ããã»ã¹ ããããŒã«ãçŸåšèªèšŒãããŠããæ¥ç¶ã®æ°ãš MaxStartups å¶éã®ã¹ããŒã¿ã¹ã衚瀺ãããããã«ãªããŸããã
- ssh ããã³ ssh-agent ã§ã¯ã$SSH_ASKPASS ã§æå®ãããç»é¢ã«æåŸ ã衚瀺ããããã°ã©ã ãåŒã³åºããšãã«ãæåŸ ã®ã¿ã€ãã瀺ããã©ã°ã远å ã§éä¿¡ãããããã«ãªããŸãã: ãconfirmã - 確èªãã€ã¢ãã° (ã¯ã/ããã)ãããªãã ãã - æ å ±ã¡ãã»ãŒãžãã空çœã - ãã¹ã¯ãŒãèŠæ±ã
- æå®ãããããžã¿ã«çœ²åã«é¢é£ä»ãããããŠãŒã¶ãŒã® allowed-signers ãã¡ã€ã«ãæ€çŽ¢ããããã®ãæ°ããããžã¿ã«çœ²åæäœãfind-principalsãã ssh-keygen ã«è¿œå ããŸããã
- sshd ããã»ã¹ã®åé¢ã«å¯ŸãããµããŒãã®æ¹å Linux seccomp ã¡ã«ããºã ã䜿çšããå Žå: IPC ã·ã¹ãã ã³ãŒã«ã¯ç¡å¹ã«ãªããclock_gettime64()ãclock_nanosleep_time64ãããã³ clock_nanosleep() ãèš±å¯ãããŸãã
åºæïŒ ãªãŒãã³ããã.ru
