コマンド_ssh

Linux
ブログ

コマンドの概要

sshとは、Linuxなどでネットワークを通じて別のPCに安全に遠隔操作するためのプロトコルです。

オプション

オプション説明使い方
-i秘密鍵を指定ssh -i [秘密鍵の場所]
-lログイン名の指定ssh -l [ログイン名]
-pポートの指定
(指定しなければ22番ポート)
ssh -p [ポート番号]

例えば

ホスト名 :www.host.org
ポート番号:10000
ユーザ名 :user007
パスワード:password007  のとき

ssh -l user007 -p 10000 www.host.org となります。

その後パスワードを求められたら「password007」を入力するとログインできます。

またほかに 「ssh -p 10000 user007@www.host.org」という書き方でも大丈夫です。

※ホスト名が「10.20.30.40」などのIPアドレスの場合は、「www.host.org」のところをそのまま「10.20.30.40」に変えればよい。

※ホストが自ホスト「localhost」の場合は、「www.host.org」のところを「localhost」にすることになります。

秘密鍵を指定してアクセス

ホスト名 :www.host.org
ポート番号:10000
ユーザ名 :user007
秘密鍵  :/home/example/pri.key

正常なとき

$ ssh -l user007 -i /home/example/pri.key -p10000 www.host.org
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
これでログインできます。

「are too open」のとき

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/example/pri.key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/example/pri.key": bad permissions

これは、秘密鍵は自分以外の者が使えてはいけないのもなのに使える状態なので、このままではダメです。と言われています。
「Permissions 0777」となっているとのことなので、「0600」などにしましょう。
$ chmod 600 /home/example/pri.key でパーミッションが変更できます。

sshを使ったコマンドの実行(リモートで実行できるのです)

例えばの時のサーバーのホームディレクトリにexample.txtがあった場合
$ ssh user007@www.host.org -p 10000 ls 
example.txt ←ホームディレクトリにexample.txtのみファイルがある
$ ssh user007@www.host.org -p 10000 cat ~/example.txt
Hello World ←example.txtの中身をcatで見られた。

怒られた!!

Unable to negotiate with <IPアドレス> port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

こんな風に怒られる時があります。これはOpenSSH8.8からはSHA-1のRSA署名の鍵が無効化されたためです。そのようなときは一時的に

$ ssh -oHostKeyAlgorithms=+ssh-rsa <リモートホストのIPアドレス>
または
$ ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=ssh-dss,ssh-rsa <リモートホストのIPアドレス>

で接続できます。

参考文献

コメント