アクセス権周りとかで結構引っかかったのでメモ書きみたいな感じで。
クライアントはWindows 10, Xshell 5.
サーバはFedora 24.
一旦パスワードでssh接続して、クライアントから操作してる感覚で書き書き。
最初にやること
ユーザの作成
最初が肝心
$ useradd hoge
$ passwd hoge
sudoを使えるようにしたいよね
$ usermod -aG wheel hoge
ってやるといいらしい。
-aG
を引数にするとグループを追加になる。
多分reboot
すると有効になるのかな?
ここはあまりわかってない。
ホームディレクトリのownerと権限を確認する
コメントで教えてもらいました。nak1114さんありがとうございます
$ cd /home/
$ ls -l |grep hoge
なんか出てくるけど、僕の場合は下記のような感じ。
drwx------. 4 fuga hoge 106 2月 5 02:16 hoge
左から権限、リンクの数、owner, グループ、ファイルサイズ、タイムスタンプ、ディレクトリ名
権限がrwx------
になってるけど、正しくはrwx--x--x
だから変える。
$ chmod 711 hoge
でrwx--x--x
に。
最初に出てくるfuga
がownerだから、hoge
じゃなかったらownerを変える。
$ chown [owner] hoge
でownerをhoge
にする。
備考
頭のd
はディレクトリに対しての権限つけてますの意味。
rwx--x--x
は左から所有者、グループ、その他のユーザの権限で、所有者がread, write, executeできて、
グループとその他のユーザはexecuteのみってことかな。
ssh接続したいユーザでやること
鍵を作る
$mkdir ~/.ssh/
$cd ~/.ssh/
~/.ssh/
に鍵を置くことになるので先に移動してそこで作ると楽
$ssh-keygen -t rsa -b 2048 -f hoge_rsa
-t
で鍵の種類、-b
でbit数、-f
でファイル名を指定する。
別に-b 2048
はなくても2048bitになるけどまぁわかりやすいかなって。
秘密鍵をクライアント側にコピーして保存する
$cat hoge_rsa
ベチョーってめっちゃ中身が表示されるからwin側でテキストエディタにコピー。
普通にwin側でもhoge_rsaって名前でなくさないところに保存したいね。
コピーして保存したら元ファイルを削除
$rm hoge_rsa
サーバ側には必要ないしね
公開鍵の新規登録 or 追記する
$cat hoge_rsa.pub >> authorized_keys
cat
でやるとファイルの中身を追記になるんだけど、追記先のファイルがなかったら新しく作られる!便利!
公開鍵もクライアント側にコピーして保存する
$cat hoge_rsa.pub
秘密鍵をコピーして保存した方法でオッケー。
万が一紛失ってあるからね、こわいもんね。
新規登録 or 追記したら元ファイルを削除
$rm hoge_rsa.pub
もう元ファイルはサーバ側じゃいらない子だから消そう。キレイキレイ。
アクセス権の設定
これ結構引っかかったというか、参考先に書いてあったり書いてなかったりでチンプンカンプンだった。
動いた設定でメモ。
$cd ~
$chmod 700 .ssh
$cd .ssh
$chmod 600 authorized_keys
sshdの再起動
$service sshd restart
全部終わったら再起動。
おわり
とりあえず自分がやったことは全部書いた。
またユーザを追加することがあったときにこれを見れば確実って感じに。
こんな感じで少しずつ触っていければいいなー。
参考URL
ssh公開鍵認証を実装する
SSHの鍵認証設定
鍵交換方式によるssh接続
Ubuntuでsudoできなくなった
ファイル・ディレクトリの所有者とグループを変更する - chown
【 chmod 】 ファイルやディレクトリのアクセス権を変更する
chmod - ファイルのアクセス権の変更
ls - ディレクトリの内容を一覧表示