SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจนเจพเจกเฉ€ เจธเจฅเจพเจจเจ• เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจนเฉˆ, เจ‡เจธ เจกเจฐ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เจฟ เจ•เฉ‹เจˆ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจšเฉ‹เจฐเฉ€ เจœเจพเจ‚ เจกเฉ€เจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจฒเฉ‡เจ– เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจฒเฉฑเจญเจฟเจ† เจนเฉˆ เจชเจพเจ—เจฒ 2018 เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ $HOME/.ssh.

เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจตเจฐเจคเจฃ เจฆเจพ เจธเฉเจเจพเจ… เจฆเจฟเฉฐเจฆเจพ เจนเจพเจ‚ KeePassXC, เจœเฉ‹ เจ•เจฟ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจชเจพเจธเจตเจฐเจก เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆ, เจ‡เจน เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจฟเจฒเจŸ-เจ‡เจจ SSH เจเจœเฉฐเจŸ เจตเฉ€ เจนเฉˆเฅค

เจ‡เจน เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจชเจพเจธเจตเจฐเจก เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ•เจฒเฉ€ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ, SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ…เจธเฉฐเจญเจต เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจฒเฉŒเจ—เจ‡เจจ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ SSH เจเจœเฉฐเจŸ เจฆเจพ เจ†เจŸเฉ‹เจธเจŸเจพเจฐเจŸ เจœเฉ‹เฉœเฉ€เจ; เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ–เฉ‹เจฒเฉเจนเฉ‹ ~/.bashrc เจ†เจชเจฃเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ เจธเฉฐเจชเจพเจฆเจ• เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
    echo "Initialising new SSH agent..."
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
    . "${SSH_ENV}" > /dev/null
    #ps ${SSH_AGENT_PID} doesn't work under cywgin
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจจเฉ‚เฉฐ KeePassXC เจตเจฟเฉฑเจš เจธเจนเจพเจ‡เจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

เจธเฉฐเจฆ -> เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ -> SSH เจเจœเฉฐเจŸ -> SSH เจเจœเฉฐเจŸ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“

SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

เจ‡เจน เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ†เจ“ เจนเฉเจฃ KeePassXC เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ SSH เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ€เจ:

เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจ†เจˆเจ•เจจ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹, เจซเจฟเจฐ เจกเฉ‡เจŸเจพ เจญเจฐเฉ‹:

SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

เจœเฉ‡เจ•เจฐ เจ•เฉเฉฐเจœเฉ€ เจชเจพเจธเจตเจฐเจก เจจเจพเจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆ, เจคเจพเจ‚ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจชเจพเจธเจตเจฐเจก เจตเฉ€ เจฆเจฟเจ“

เจŸเฉˆเจฌ เจตเจฟเฉฑเจš เจ…เจคเจฟเจฐเจฟเจ•เจค เจธเจพเจกเฉ‡ เจจเจพเจฒ เจ…เจŸเฉˆเจšเจฎเฉˆเจ‚เจŸ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเฉ‹ id_rsa:

SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

เจŸเฉˆเจฌ เจตเจฟเฉฑเจš SSH เจเจœเฉฐเจŸ, เจจเฉ‹เจŸ:

  • เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฃ/เจ…เจจเจฒเจพเจ• เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจเจœเฉฐเจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเฉ‹
  • เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจฌเฉฐเจฆ/เจฒเจพเจ• เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจเจœเฉฐเจŸ เจคเฉ‹เจ‚ เจ•เฉเฉฐเจœเฉ€ เจนเจŸเจพเจ“

เจ…เฉฑเจ—เฉ‡, เจธเจพเจกเฉ€ เจ•เฉเฉฐเจœเฉ€ เจšเฉเจฃเฉ‹ (id_rsa) เจจเฉฑเจฅเฉ€ เจตเจฟเฉฑเจš

เจ…เจคเฉ‡ เจฌเจŸเจจ เจฆเจฌเจพเจ“ เจเจœเฉฐเจŸ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹:

SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‹

เจนเฉเจฃ, เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ KeePassXC เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เฉเฉฐเจœเฉ€ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ SSH เจเจœเฉฐเจŸ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจกเจฟเจธเจ• 'เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ!

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹