SSH를 편하게 하고 싶다...
6182 단어 SSHssh 공개 키 인증
원래 SSH로 리모트 하는데, 아직 패스워드 사용하고 있는 거야?
...라고 하는 것도 현대에 있어서, 사용할 수 있는 것은 많이 늘어 왔다.
그래서 사용할 수있는 것을 사용하여 사용하십시오!
이렇게하면 궁극적으로
ssh dev-sv
만으로 연결할 수 있습니다.환경 준비
전치
환경은 먼저 정돈하고 나서야 사용할 수 없는 것이다.
엔지니어가 되어 가장 어려운 것은 환경을 정돈하는 것이라고 생각한다.
매번 같으면 좋지만 ... 왜일까? 같지 않을 수도 있고, 완전히 별개가 되기도 한다.
이번 소개하는 내용은 macOS에서의 접속이 되고 있다. (windows로 개발한 적 없어... 혹시, 하고 싶지 않은 w)
접속할 예정인 서버는 CentOS7이다.
”SELiunx”도 “firewall”도 동시에 기동되고 있다.
접속에 사용하는 회선은, 로컬이든 글로벌도 어느 쪽이라도 대응 가능하다고 생각한다.
주제
우선, 접속처의 서버측의 설정.
이 작업은 모두
"root"
에서 수행됩니다.설정하는 순서는 어느 쪽이든 상관없다.
연결하기 위한 정보
# sshの設定ファイルを更新する
# 証明書で接続できるようにするためにコメントアウトを外す。
sed -i -e "s/#PubkeyAuthentication/PubkeyAuthentication/g" /etc/ssh/sshd_config
sed -i -e "s/#AuthorizedKeysFile/AuthorizedKeysFile/g" /etc/ssh/sshd_config
# or
vi /etc/ssh/sshd_config
# "#PubkeyAuthentication yes" => "PubkeyAuthentication yes"
# "#AuthorizedKeysFile .ssh/authorized_keys" => "AuthorizedKeysFile .ssh/authorized_keys"
# firewallの設定する
# デフォルトで接続してる場合は、serviceで許可をしておくといい。
firewall-cmd --add-service=ssh --zone=public --permanent
# or
# SSHの許可をする。ポートで指定してる場合、一番目のポート番号を変える。
firewall-cmd --add-port=22/tcp --zone=public --permanent
# 設定を反映する
firewall-cmd --reload
# 設定を確認する
firewall-cmd --list-all-zones
# public (active)
# ...
# services: ssh <=これが追加されていることを確認
# ports: 22/tcp <=もしくは、指定したポート番号
# ...
# ---- 一般ユーザー権限の場合は、ここまで -----
# ---- 管理者権限に移行できるようにする -----
# 次に接続するためのユーザーを追加する
useradd hoge # ユーザーを作成
passwd hoge # 作成したユーザーのパスワードを設定、初期接続時に必要となるため。
# 必要に応じて、"wheel" グループに追加する。基本的に、管理者にならないのであれば、いらない。
usermod -aG wheel hoge
cp -p /etc/pam.d/su /etc/pam.d/su.b # ファイルが壊れた時のために、バックアップ用のコピーを取っておく。
# 設定ファイルのコメントアウトを外す。
sed -i -e "$(cat /etc/pam.d/su | grep -n 'pam_wheel.so' | awk -F':' '{print $1}') s/# //g" /etc/pam.d/su
# or
vi /etc/pam.d/su
# "#auth required pam_wheel.so use_uid" => "auth required pam_wheel.so use_uid"
# 反映後、exitで抜け。追加ユーザでログインでき、rootユーザになれることを確認する。可能であれば、sshからも試す。
클라이언트 이상 (mac 측)
대부분의 기사에서는,
scp
로 리모트처에 공개키를 송신해, 복사해 권한 부여까지 실시하고 있지만,ssh-copy-id
를 사용하면 연결 대상에 "authorized_keys"가 자동으로 등록됩니다.
whoami # hogeと表示される。
# もしリモート先の登録ユーザーと"whoami"が異なる場合は、"$(whoami)"の部分を"hoge"に読み替えて、変更する。
ssh-keygen -C "$(whoami)@$(hostname)-$(date -I)"
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
vi ~/.ssh/config
# 以下を追加する
# Host ex-sv # わかりやすい名前をつけておく
# User hoge # 接続許可されたユーザー名
# HostName example.com # 接続先ホストドメイン or IPアドレス
# port 22 # 接続可能なポートに合わせる
# IdentityFile ~/.ssh/id_rsa # リモート先に送ったシークレットキーの公開じゃない方
# 最後に、"ssh ex-sv"を実行して、接続が可能であることを確認する
ssh ex-sv
마지막으로...
인증서로 로그인할 수 있는지 확인한 후 다음 설정을 실행하면,
타인으로부터의 로그인이나 공격을 막는 것이 가능.
vi /etc/ssh/sshd_config
# PermitRootLogin yes => no
# PasswordAuthentication yes => no
mac 터미널의 도구
터미널에 있는 툴에, "shift+command+K"로 기동하는 "신규 리모트 접속"이라고 하는 것이 있다.
이렇게하면 사전에 명령을 등록 할 수 있으므로 기억할 필요가 없습니다.
이하에, 이미지만 붙여 둔다.
상세한 설명은 여기에서는 하지 않기로 한다.
왼쪽의 "+"로 서비스명을 등록한다.
오른쪽의 "+"로 접속처를 등록할 수 있다. 그 때, 호스트명이 아니고,
config
에 등록한 "Host"명을 지정한다.Reference
이 문제에 관하여(SSH를 편하게 하고 싶다...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jack-low/items/0f70f15391ed5d686226텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)