私はMac Book Pro(fooという名前)で作業しています。クライアントが大容量ファイルを転送するサーバーがあります。 (望む)私はしばしばバーにsshを接続し、ファイル(バズと呼ばれる)を私のMacにscpします。
bob@foo$ ssh bar
Last login: Fri Aug 23 14:49:32 2013 from foo
bob@bar$ scp /guest/buzz bob@foo:~
Password:
ファイルをMacに再度scpするたびにパスワードを入力したくありません。なぜなら、自動的にパスワードを入力することになるからです。
私は自分を知っていますできるbar
SSHキーを設定しましたが、誰かがキーをクラックすると簡単にアクセスできるか心配ですfoo
(間違っている場合は訂正してください)。
サーバーが破損している場合は、パスワードなしで誰かにMacへのフルシェルアクセスを許可せずにbarからfooにファイルをコピーする方法はありますか?
注:私のMacで新しいユーザーを設定し、そのユーザーのシェルアクセスを無効にすることを検討しています。可能動作しますが、より良い方法があると思います。可能であれば、ユーザーを追加しないことをお勧めします。
答え1
まあ、あなたは台無しだった。
私が理解したところによると、あなたはファイルをコピーしたいだけです。バー到着金持ち:
[file] *bar* ------copy------> *foo*
これを行うには、最初にすべきssh
ことバーその後、scp
ファイル金持ち:
*bar* -------ssh------> *foo* [file]
それから:
*foo* ----scp[file]---> *bar*
こうすればこうなる安全ではなく、間違っている。あなたがしなければならないのは、ファイルを直接scpして再びあなたに送るだけです:
bob@foo$ scp bob@bar:/guest/buzz ~
言い換えれば:
*foo* <---scp[file]---- *bar*
今、解決しなければならないいくつかの問題があります。
ファイルがどこにあるかはどうすればわかりますか?
a) 他の端末で SSH を使用する
2番目の端末を開き、SSHを実行してください。バー、ファイルを見つけて、最初のファイルのパスをコピー/貼り付けます。
b)SFTPを使用する
SFTP(FTPまたはFTPSとは無関係!)はOpenSSHで実装されており、デフォルトで利用可能です。 SFTP経由でサーバーに接続し、FTPに似たコマンドを使用してファイルとそのget
内容を見つけます。
c) グラフィカルユーザーインターフェースの使用
たとえば、FilezillaまたはNautilusはリモートSFTP / SSH共有を参照できます。
d) 証明書の設定
証明書接続を確立すると、ローカル側だけでなくリモート側でもタブを完成させることができます。たとえば、あなたの例buzz
に応じて、次のことができます。
bob@foo$ scp bob@bar:/guest/[tab][tab]
しばらくすると、リモート/guest/フォルダに含まれているファイルの一覧が表示されます。
証明書でSSHを設定するには?
a) まだ完了していない場合は、プライベート RSA 鍵ペアを生成します。
OpenSSHクライアントがすでにインストールされている場合は、次のように入力してこれを実行できます。
bob@foo$ ssh-keygen -t rsa
(利用可能なすべてのオプションについては、マニュアルまたはオンラインを確認してください)。パスワードを入力するように求められます。これは、ローカルアカウントのパスワードではなく、暗号化に使用できるオプションのパスワードです。秘密鍵あなたは産卵しようとしています。
効果的に次の2つのファイルを生成します。
- /Users/[ユーザー名]/.ssh/id_rsa
- /Users/[ユーザー名]/.ssh/id_rsa.pub
最初の *id_rsa* は次のようになります。プライベート。デフォルトでは、インプレッションを避けるためにすべてのssh-keygen
努力をします(ファイルシステムアクセスを使用)。だから(オプション)パスワードも尋ねるのです。これについて心配しないでください。 *id_rsa* ==秘密鍵==を覚えておいてください。プライベート。このキーは絶対コンピュータから離れてください。
2番目は公開です。この公開証明書から秘密鍵を取得するには、多くのコンピュータのパフォーマンスが必要です。意味はへへ)。世界と共有することは完全に安全です。 NSAや同様の機関が実際に公開鍵を解読するために何百万ドルを費やそうとする非常にまれな場合でも、MacBookは依然として安全です...(またはそうでないかもしれません。 . あなたは安全な側にあります)問題:)
この公開証明書は、実際にリモートサーバーに配置する証明書です。バー。
b) 公開証明書をサーバーに入れるには?
2つのオプション。
ssh-copy-id
利用可能な場合は、以下を使用してくださいbob@foo$ ssh-copy-id bob@bar
。完璧。の場合いいえ、
~/.ssh/id_rsa.pub
にコピーバー:bob@foo$ sftp ~/.ssh/id_rsa.pub bob@bar:pub_cert
(ここでは、id_rsa.pub
個人用フォルダの公開証明書をリモートコンピュータにコピーします。.ssh/
~
バーユーザーのホームフォルダから単発。これがデフォルト設定です。また、このプロセス中に名前がid_rsa.pub
変更されました。私はそれが正確に)として使用できることを示すためにpub_cert
行きました。sftp
scp
次に、証明書を正しい場所にコピーします。
bob@foo$ ssh bob@bar
今Bobのプライベートフォルダにあります。バー。
bob@bar$ cat pub_cert >> .ssh/known_hosts
cat
(ここを使ってpub_cert.ssh/known_hosts
の内容を表示します>
。これは>>
「既存のファイルの末尾にストリームを追加します」を意味します)。
C)結果は?
今あなたはscp
//sftp
行くことができますssh
バーパスワードを入力しなくても自由に使えます。 [tab]キーを使用してローカルパスとリモートパスをオートコンプリートすることもできます。
d)私のMacはどのくらい安全ですか?
これにより、コンピュータでSSHサーバーを実行する必要さえありません。 SSHクライアント(scp
//プログラムsftp
)は1つだけですssh
。これはあなたにとって安全です。バーダメージを受けました。
e) この鍵/証明書で正確に何をしましたか?
まず、秘密鍵や公開証明書など、いくつかのファイルを生成します。これにより、セキュリティと認証に関連する多くのタスクを実行できます。しかし、私たちのケースでは、かなり単純化され、次のように使用されます。
に接続しようとするとバー、接続に使用できる証明書を取得したことを通知します。
バーを含むシステムのさまざまな場所を確認し、~/.ssh/known_hosts
あなたが発行した証明書を見つけて暗号化されたデータを転送するために使用します。
公開証明書は実際に物事を暗号化することができます!
今これは素晴らしいですが、どうすればいいですか?金持ち明らかな?秘密鍵を使用してください。
秘密鍵は、その公開証明書で暗号化されたコンテンツを復号化できます。
これを非対称暗号化と呼びます。
その後、デフォルトでは、サーバーは公開証明書を使用して暗号化された複雑なパスワードを送信します。これを受け取り、秘密鍵で復号化した後、それを使用してサーバーと双方向のデータを暗号化し始めます。
さて、本当に自分のやり方で仕事をしたい場合は、SCPに戻ってください。金持ち?
あなたはただ問題を求めています。ただし、損傷の影響を軽減するためにchroot専用サーバーを設定できますSFTP
。これ以上は機能しscp
ませssh
んが、sftp
Filezillaやその他の機能は機能します。
引用:https://www.allthingsdigital.nl/2013/05/12/setting-up-an-sftp-only-account-with-openssh/
答え2
ファイルの形式を見ると、authorized_keys
特定のキーで使用できるコマンドを制限できることがわかります。scp
この場合、以前に使用した方法で、指定されたキーを使用して特定のコマンドに対するSSH操作を許可します。マニュアルページを表示するために使用しますman authorized_keys
。
答え3
一度見てみたいかもしれませんhttps://github.com/scponly/scponly/wiki/Downloadまたは、ユーザーはsftp
このように制限することができます...
# usermod -s /usr/libexec/openssh/sftp-server whoever
答え4
他の人と同様に、別のコンピュータから直接コピーすることをお勧めします。
bob@foo$ scp bar:/guest/buzz ~
何らかの理由でbarでレプリケーションを開始したい場合は、fooがfooにログインできるようにfooにSSHキーペアを作成できます。その後、SSHエージェントを使用して同じ接続を介してキーを渡すことができます。
bob@foo$ ssh -A bar
password:
bob@bar$ scp /guest/buzz bar:
# no password prompt
パスワードプロンプトが表示されないように公開鍵をバーにコピーすることも、キーにパスワードを追加してSSH経由でバーに入力してから、SSHプロキシのために必要ない場合があります。リバース接続のために同時に安全を保ちます。