sudo sshd -T | grep -i -P "permitrootlogin|PasswordAuthentication" permitrootlogin without-password passwordauthentication no
Host old-host HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
Bad configuration option: pubkeyacceptedalgorithms
Host old-host IgnoreUnknown PubkeyAcceptedAlgorithms HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
記事:
記事:
環境:
userauth_pubkey: unsupported public key algorithm: ssh-ed25519
ssh-keygen -R <hostname>
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN OPENSSH PRIVATE KEY-----
ssh-keygen -p -f </path/to/keyfile> -m pem
ssh-keygen -lf ~/.ssh/id_rsa.pub 2048 SHA256:**** **** (RSA)
ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub 2048 MD5:**** **** (RSA)
ssh -o PreferredAuthentications=password <user>@<host or ip>
HOSTS="192.168.1.2 192.168.1.3" for ip in $HOSTS; do \ echo "-- $ip"; \ ssh -o PreferredAuthentications=password $ip hostname;\ done
openssl rsa -in id_rsa -aes128 -out id_rsa.aes128 chmod 600 id_rsa.aes128
OpenSSH 7.3以上で「Include」が使用可能になった。
ssh-keygen -N "" -t ed25519 -f test -C test cp test.pub /tmp/ ssh-copy-id -i /tmp/test.pub localhost /usr/bin/ssh-copy-id: ERROR: failed to open ID file '/tmp/test': No such file or directory (to install the contents of '/tmp/test.pub' anyway, look at the -f option)
rpm -qf /usr/bin/ssh-copy-id openssh-clients-5.3p1-122.el6.x86_64 ssh-copy-id Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine
rpm -qf /usr/bin/ssh-copy-id openssh-clients-7.4p1-12.el7_4.x86_64 ssh-copy-id Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname -f: force mode -- copy keys without trying to check if they are already installed -n: dry run -- no keys are actually copied -h|-?: print this help
messagesに以下のログが出続ける事があった。
「/etc/ssh/」以下に該当ファイルが無いのが原因
sudo tail -f /var/log/messages sshd[1234]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key # 生成する sudo ssh-keygen -A ll /etc/ssh/ | grep dsa ... -rw------- 1 root root 668 May 25 06:14 ssh_host_dsa_key -rw-r--r-- 1 root root 635 May 25 06:14 ssh_host_dsa_key.pub
/etc/ssh/sshrc # ユーザ全体 ~/.ssh/rc # 個人ユーザ毎
SHELL=/bin/bash TERM=xterm SSH_CLIENT=192.168.61.1 54109 22 SSH_TTY=/dev/pts/2 USER=user01 SSH_AUTH_SOCK=/tmp/ssh-SsqZGU4422/agent.4422 PATH=/usr/local/bin:/bin:/usr/bin MAIL=/var/mail/user01 _=/bin/env PWD=/home/user01 HOME=/home/user01 SHLVL=2 LOGNAME=user01 SSH_CONNECTION=192.168.61.1 54109 192.168.61.128 22
CentOS5でパスワードを設定せず、公開鍵認証だけのユーザで発生する
User user01 not allowed because account is locked
user01:!!:...
echo $(mkpasswd -l 16 -s 0) | sudo passwd user01 --stdin # または削除 sudo passwd -d user01
公開鍵認証やLDAPの検証など。
ssh -o PreferredAuthentications=password user@host
接続先がIPでも、何故かDNSの名前解決をしようとして遅い場合がある。
vim /etc/ssh/sshd_config ---- # 名前解決しない UseDNS no # IPv4を使う AddressFamily inet # GSSAPI 認証をしない GSSAPIAuthentication no ---- sudo service sshd restart
/.ssh/<control file>が出来る。
/.ssh/config
Host * ... StrictHostKeyChecking no ControlMaster auto ControlPersist 60s
ssh -O check git@github.com
ssh -O exit git@github.com
lsof -i | grep ssh ssh 5229 user ... pkill 5229
cat ~/.ssh/config Host * ControlMaster auto # openssh 6.7以上の場合、「%C」が使える。'%C' by a hash of the concatenation: %l%h%p%r. ControlPath ~/.ssh/%C # openssh 6.7未満 # ControlPath ~/.ssh/mux-%r@%h:%p ControlPersist 60s
ssh -O check <host> # 動作している時 Master running (pid=1760) # 切れた時 Control socket connect(/path/to/...): No such file or directory
ssh -O exit <host>
公開鍵が無い場合でも、秘密鍵があれば生成できる
ssh-keygen -y -f ~/.ssh/test.pem
sshで特定のコマンドの実行だけ許可し、実行後すぐに切断する。
複数設定したい場合は、別の公開鍵を作成すれば良いだろう。
command="uptime",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3N...
ssh user01@192.168.61.129 08:01:48 up 5 min, 2 users, load average: 0.00, 0.03, 0.00 Connection to 192.168.61.129 closed.
秘密鍵のパスフレーズが有効な場合、1度だけ入力すれば良いようにできる。
また、踏み台経由でログインする等、複数の秘密鍵を登録しておくと便利。
ssh-agent bash ssh-add ~/.ssh/example.pem ssh hoge.example.com # 終了 exit
/.bashrc に以下を追加すれば ssh-add-sh だけで実行できる
alias ssh-add-sh='eval `ssh-agent -s` ; ssh-add' ssh-add-sh ~/.ssh/example.pem
ssh-add -d example.pub # 秘密鍵しか無い場合でも、公開鍵を取得できる ssh-add -d <(ssh-keygen -y -f ~/.ssh/example.pem)
ssh-add -D
ssh -A user@remote # localの公開鍵が表示されれば成功 ssh-add -l
ssh-agent screen -U
ssh-keygen -t ed25519 -C "username@example.com"
ssh-copy-id -i ~/.ssh/id_rsa.pub <username@example.com>
echo 'username ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/username chmod 440 /etc/sudoers.d/username
passwd -d <username>
vim /etc/ssh/sshd_config ---- PasswordAuthentication no ---- service sshd restart
Apr 20 01:02:03 localhost crond[19000]: (root) FAILED to authorize user with PAM (Módulo desconhecido)
service crond restart
... sshd[10000]: Disconnecting: Too many authentication failures for <user name>
ssh-add -D
ssh user@host -o PreferredAuthentications=password
sudo sshd -t /etc/ssh/sshd_config: line 139: Bad configuration option: hoge /etc/ssh/sshd_config: terminating, 1 bad configuration options echo $? 255
sudo sshd -t -f /path/to/sshd_config
sudo useradd user1 sudo passwd -d user1 sudo vim /etc/ssh/sshd_config ---- PermitEmptyPasswords yes ---- sudo /sbin/service sshd reload
vi ~/.ssh/config ---- IdentityFile ~/.ssh/example1.pem IdentityFile ~/.ssh/example2.pem ----
ssh user@remotehost 'date | logger -t test'
ssh -t shutdown@192.168.1.100 "sudo /sbin/shutdown"
visudo ---- Defaults !requiretty ----
while read line; do # -o StrictHostKeyChecking チェックの無視 # -n sshの標準入力を/dev/nullにし、バックグラウンドモードになる # 順次実行(標準出力に表示される) # ssh -n -o StrictHostKeyChecking=no user@hostname "/bin/bash /tmp/YOUR_COMMAND.sh" # 並列実行(標準出力には表示されず、すぐに返ってくる) ssh -n -o StrictHostKeyChecking=no user@hostname "/bin/bash /tmp/YOUR_COMMAND.sh < /dev/null > /dev/null 2> /dev/null &" done < filename
ssh -o StrictHostKeyChecking=no root@hostname
/.ssh/config に指定
Host * StrictHostKeyChecking no UserKnownHostsFile /dev/null
/etc/ssh/sshd_config ---- ClientAliveInterval 300 ClientAliveCountMax 0 ---- service sshd restart
mkdir -p ~/.ssh chmod 700 ~/.ssh cat >> ~/.ssh/config << 'EOS' Host * IdentityFile ~/.ssh/id_rsa ForwardAgent yes ServerAliveInterval 15 ServerAliveCountMax 4 EOS chmod 600 ~/.ssh/config
#!/bin/sh fdasd /dev/dasdg << EOF v MYVOL1 w EOF
Host dev* User hiroki HostName dev.01.labs.unoh.net IdentityFile ~/.ssh/id_rsa.unoh ProxyCommand ssh op.labs.unoh.net nc -w 6000 %h %p Host home User hirocaster HostName home.hiroki.jp IdentityFile ~/.ssh/id_rsa.home Host * IdentityFile ~/.ssh/id_rsa ForwardAgent yes ServerAliveInterval 15 ServerAliveCountMax 3 StrictHostKeyChecking no UserKnownHostsFile /dev/null
このWARNはリモートホストが変わったという事
ssh-keygen -R <hostname>
ProxyJump 踏み台ホスト # 以下と同じの設定になる # ProxyCommand ssh -W %h:%p 踏み台ホスト
ssh -fNg -L 13306:other.host:3306 gw_user@gateway.host # mysqlで接続(mysql側のgrantで 'user'@'%' ユーザを作ってあること。'user'@'localhost'ユーザがいても、mysql -h localhostだと失敗する) mysql -A -u user -p -h 127.0.0.1 -P 13306 mysql mysql> quit # sshポートフォワーディングを終了 pkill -u $USER -f 13306:
ssh -o 'ProxyCommand=ssh gw_user@gateway.host -W %h:%p' other_user@other.host
sudo yum install nc
ssh -o 'ProxyCommand=ssh gw_user@gateway.host nc %h %p' other_user@other.host
# 公開鍵がなければ作成(default: ~/.ssh/id_rsa) ssh-keygen -t ed25519 -C "username@example.com" ssh-copy-id -i ~/.ssh/id_rsa.pub gw_user@gateway.host # 接続できるか確認 ssh gw_user@gateway.host
ssh-copy-id -i ~/.ssh/id_rsa.pub other_user@other.host # 接続できるか確認 ssh other_user@other.host
vim ~/.ssh/config ---- Host gateway.host ProxyCommand none User gw_user IdentityFile ~/.ssh/id_rsa Host other.host User other_user # OpenSSH version 5.4 or later: ProxyCommand ssh -W %h:%p gateway.host # OpenSSH version 5.3 or lower: # sudo yum install nc # ProxyCommand ssh gateway.host nc %h %p 2> /dev/null IdentityFile ~/.ssh/id_rsa ----
ssh other.host scp dummy.txt other.host:/tmp/
bash: nc: コマンドが見つかりません ssh_exchange_identification: Connection closed by remote host
ssh-keygen -N "" -t ed25519 # ファイル名やコメントを指定したい場合 ssh-keygen -N "" -t ed25519 -f my-ssh-key -C "my ssh key file" cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys vi /etc/ssh/sshd_config ---- PermitRootLogin no PasswordAuthentication no ---- service sshd restart
sudo sshd -T | grep -i -P "permitrootlogin|PasswordAuthentication" permitrootlogin no passwordauthentication no
sudo cat /etc/ssh/sshd_config.d/50-cloud-init.conf PasswordAuthentication no grep ssh_pwauth /etc/cloud/cloud.cfg ssh_pwauth: false
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
ssh-copy-id -i ~/.ssh/id_rsa.pub "user@remote_host -p 10022"
cat ~/.ssh/id_rsa.pub | ssh user@remote_host "cat >> ~/.ssh/authorized_keys"
ssh-rsa AAAAB3N...YFd8w6Q== username@example.com
パスワードなしでログインしようとして、
authorized_keysに公開鍵を追加してもパスワードを要求されてしまう場合はオーナー、パーミッションを確認しましょう。
パーミッションの設定が正しくないと接続できないようです。
私が失敗したときは、~/.ssh/が0770でした。
filename | permission |
/home/user | OK: 0700 OK: 0755 NG: 0770 |
~/.ssh/ | 0700 |
~/.ssh/authorized_keys | 0600 |
公開鍵を作成し、それを相手サーバに登録する事でパスワード入力なしにログイン可能となる。
$ su - hoge $ ssh-keygen -t ed25519 -C "username@example.com"
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 755 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys $ scp $USER@$SSH_HOST:.ssh/{identity,id_rsa,id_dsa} ~/.ssh/
/.ssh/以下のファイルが全てなので、authorized_keysに登録後、scpで同期してしまえば良い。
※$USER,$SSH_HOSTは適時に読み替える事。
scp ~/.ssh/{id_rsa,id_rsa.pub,aut install P/PE/PETDANCE/ack-1.58.tar.gz
ack [options] PATTERN [FILE...] ack -f [options] [DIRECTORY...] /dev/null