synology | ssh key값으로 비밀번호 없이 로그인

시놀로지에서도 ssh 접속을 할 때 키값으로 로그인 할 수 있는 방법이 있다.
일반 linux, 로그인에서도 사욤할 수 있다.

시놀로지를 기본으로 사용하고 있을 경우 home 폴더가 자동 생성 되지않는다.
옵션으로 설정을 해야 한다.

사용자별 home 폴더 생성

Imgur
[제어판] - [고급] 의 제일 하단메뉴 [사용자 홈]에서 사용자 홈 서비스 활성화를 체크한다.

홈 폴더가 있어야 해당 계정에 접속할 public key를 저장할 수 있다.

ssh-keygen

접속이 허용해야 될 컴퓨터에서 키를 생성해야 한다.

$ ssh-keygen
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/leaf/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx leaf@notebook.local

~/.ssh/ 폴더에 id_rsa, id_rsa.pub키가 생성 된 것을 확인할 수 있다.
이런 방식으로 생성된 키는 aws, git과 같은 서비스에 접속하는데 암호화키로 사용되어 진다.

public key 전송

ssh-copy-id

ssh-copy-id파일이 설치가 되어 있다면 간단히 public key 파일을 이동 등록 할 수 있다.
접속이 허용되어야 할 컴퓨터에서 아래와 같이 명령어를 실행한다.

# ssh-copy-id -i [id_rsa.pub 파일명] [사용자명]@example.com

위와 같은 명령어로 한방에 public key를 sshd가 설치되어 있는 서버에 설치한다.

홈파일 권한 설정

권한이 설정되어 있지 않으면, 접속을 해도 비밀번호를 요구하는 경우가 생긴다.
반드시 chmod명령어를 통해서 폴더 및 파일 권한을 확인하자.

chmod 755 /var/services/homes/abc
chmod 700 /var/services/homes/abc/.ssh
chmod 600 /var/services/homes/abc/.ssh/authorized_keys

이와 비슷하게 id_rsa, id_rsa.pub파일도 권한에 따라서 사용이 안 될수 있다.
반드시 숙지해야 할 부분이다. 매우 중요한 부분.

설정파일 수정

# vi /etc/ssh/sshd_config

아래와 같은 내용의 설정의 주석을 제거 한다.

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

그리고 sshd 서비스 재시작

# synoservicectl --restart sshd

서비스 재시작을 하고 난 뒤에 접속을 하려고 하면, 튕겨나는 상황이 발생하면, DSM제어판에 들어가 SSH 서비스 사용을 체크해제 저장하고 난 후 다시 체크상태로 하면 다시 접속 되는 것을 확인할 수 있다.


반응형
synology | nginx + php70 + mariadb + wordpress

시놀로지를 처음 이용해 보았습니다.
워드프레스 홈페이지를 올리려고 했는데, 기본으로 제공되는 패키지를 통해서 설치를 진행 할 수 있습니다.

기본 패키지는 php 5.3 으로 설치 됨.

그래서, php70 으로 판올림하는 작업을 해서 설치하려고 합니다. php72로 설치하는 방법도 아래와 같은 방법으로 설치하면 될 것 같습니다. (추측’)

아래의 설치방법은 최대한 심플하고 간단하게 설치를 진행하려고 합니다.

준비

설치할 계정에 관리자 권한이 있어야 합니다.

SSH 접속환경

[제어판]에서 [고급모드]를 통해서 SSH 설정을 진행할 수 있습니다.
터미널 및 SNMP 메뉴를 클릭해서 SSH 서비스 활성을 통해 설정을 완료할 수 있습니다.

Imgur

Imgur

이제 아래 작업으로 진행해 주세요.

설치

대부분의 설치는 패키지 설치를 통해서 설치를 합니다. 아래와 같은 사항을 설치합니다.

  1. mariaDB 10
  2. php70
  3. php53 (phpMyAdmin 설치를 위한 필수)
  4. phpMyAdmin
  5. webstation
  6. 워드프레스 한글판 다운로드

mariaDB 10

설치할 때 root계정을 잘 메모 해 놓습니다. 나중에 phpMyAdmin에 접속 할 때 필요합니다.

php70

php70 기반으로 php70을 설치하기 위해서 필요합니다.

설치하고 난 뒤에 설정을 잡아야 사요할 수 있다.
아래 세팅 과정에서 다시 설명하겠습니다.

php53

시놀로지가 php53기반으로 돌아가는 패키지들이 있습니다.

phpMyAdmin

mariaDB 10을 웹을 통해서 접속하기 위해서 필요합니다.
외부에서 직접 서버로 접속하는 것은 보안에 위험이 있습니다. 또한, 접속하는 방법도 번거롭습니다.
반드시 설치를 진행하는 것이 좋습니다.

wordpress DB 및 계정 추가

wordpress 계정을 생성 해 준다

같은 네트워크단에서 설치를 진행할 경우 localhost권한만으로 가능하다.
But, 권한을 % 권한으로 전역 설정을 해 줘야 wordpress 설치가 외부에서 할 수 있다.

webstation

가상 호스팅기능을 사용하기 위해서 필요 합니다.
만약 여러개의 사이트를 운영하게 된다면 가상 호스팅을 통해서 진행하면 폴더관리 더 유연하게 할 수 있습니다.

설치가 되었다면 터미널상에서 web 폴더가 만들어 진 것을 확인할 수 있습니다.

기본 설치가 완료 되었다면 아래와 같은 화면을 패키지센터에서 확인 할 수 있습니다.

Imgur

워드프레스 설치

워드프레스 다운로드 페이지에서 한글판을 설치할 수 있습니다.
접속하면 볼 수 있는 다운로드 페이지에서 링크복사를 합니다.

링크 클릭을 눌러서 다운로드 받지 마세요.
터미널을 통해서 다운로드 하는게 편합니다.

SSH 접속

Imgur

입력하라는 암호는 사용자 암호를 입력하면 됩니다.

wordpress

webstation이 설치되어 있는 폴더에 가서 워드프레스 최신버전을 설치합니다.

다운로드 파일

# sudo wget https://ko.wordpress.org/wordpress-5.0.3-ko_KR.tar.gz

압축풀기

# sudo tar xvfz wordpress-5.0.3-ko_KR.tar.gz

/volume1/web/wordpress라는 폴더가 생성된 것을 확인할 수 있습니다.

참고 : sudo 항목을 입력하기 귀찮다면,
# sudo -i
명령어를 통해서 관리자로 로그인이 가능합니다.

설정

PHP 7.0 module 설정

module 사용설정을 해줘야 wordpress가 제대로 실행이 됩니다.

webstation에서 PHP 설정에서 PHP 7.0항목을 클릭합니다.

Imgur

Imgur

확장 모듈에 있는 모든 항목을 클릭 활성화 합니다.

가상호스팅 설정

패키지 webstation를 실행해서 가상호스트 설정을 시작한다.

  • 문서루트 : web/wordpress 워드프레스가 설치되어 있는 폴더
  • HTTP : Nginx
  • Default Profile ( PHP 7.0 )

Imgur

여기까지 설정이 되었으면 이제 설정했던 호스팅으로 브라우져 접속을 하면, 설치화면을 볼 수 있습니다.

추가설정

wordpress 권한설정

권한 설정을 해줘야 ftp에 대한 정보를 묻지않고 플러그인 설치를 진행할 수 있다

소유자 변경

# chown http:http -R /volume1/web/wordpress

시놀로지에서 기본으로 생성되어있는 http 사용자와 그룹이 있어서 일단 이렇게 설정
개인이 편하게 수정해서 사용할 수 있습니다.

파일 권한 수정

# cd /volume1/web/wordpress
# find ./ -type f -exec chmod 644 {} \;
# find ./ -type d -exec chmod 755 {} \;	

nginx 설정

nginx에서 설정하는 방법을 통해서 기본적인 설정을 진행했다.

nginx 가상호스팅 설정파일

가상호스팅 서비스에 관한 설정파일 위치

/etc/nginx/etc/app.d/server.webstation-vhost.conf

파일안을 들여다보면 각 가상호스팅 설정별로 최하단에 include 설정이 되어있는 폴더를 확인할 수 있다.

include /usr/local/etc/nginx/conf.d/279471f7-538e-4d3c-82e0-dbe9ef35393d/user.conf*;

진하게 표시되어있는 부분에 nginx 추가 설정파일을 작성하면 된다.

작성하는 이유 : 시놀로지가 재시작되면 server.webstation-vhost.conf 설정들이 재설정이 되기 때문에 상태 설정이 지워진다고 한다.

# WP Super Cache 설정 시작.
set $cache_uri $request_uri;

# POST 요청시 Super Cache 작동하지 않도록 설정
if ($request_method = POST) {
    set $cache_uri 'null cache';
}

# Get 요청시에 인수가 존재할 경우 Super Cache 작동하지 않도록 설정
if ($query_string != "") {
    set $cache_uri 'null cache';
}

# 다음의 주소로 시작할 경우 Super Cache 작동하지 않도록 설정
# wp-admin, xmlrpc 등을 포함함
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache';
}

# 로그인한 사용자나 최근에 댓글을 달았던 사람 상대로 Super Cache 작동하지 않도록 설정
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache';
}

# 1. Permalink가 작동하도록 설정한다.
# 2. 주소가 들어왔을 때 supercache가 가지고 있는 파일이 존재할 경우
#    PHP를 거치지 않고 바로 캐시를 전송시킨다.
location / {
    root   /volume1/web/wordpress;
    index  index.php index.html index.htm;
    try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html $uri $uri/ /index.php?$args;
}

설정파일을 추가한 뒤에 nginx 에서 설정을 적용한다

# nginx -s reload

워드프레스 설치

이제 서비스하는 주소로 접속하면 설치화면이 나올겁니다.
여기서 DB와 연결이 되지 않는다면, 설정을 아래와 같이 수정한 후 계속 합니다.

localhost:/run/mysqld/mysqld10.sock
반응형

+ Recent posts