diff --git a/roles/openssh/tasks/installSsh.yml b/roles/openssh/tasks/installSsh.yml
index b7b9a696b6a1beb3de648c60edb300e27e635676..cc73e0a15de85821c517251a38c3f0aef9090ab3 100644
--- a/roles/openssh/tasks/installSsh.yml
+++ b/roles/openssh/tasks/installSsh.yml
@@ -38,21 +38,35 @@
   sudo: true   
   when: ansible_os_family == "RedHat"
 
-- name: copy config script
-  template: dest={{ ssh_dir }}/etc/sshd_config src=sshd_config_centos.j2 mode=644
-  notify: restart openssh 
-  sudo: true   
-  when: ansible_os_family == "RedHat"
-
 - name: copy init script
   template: dest=/etc/init.d/{{ sshd_name }} src=ssh.initd.debian.j2 mode=755
-  sudo: true   
+  sudo: true
   when: ansible_os_family == "Debian"
 
-- name: copy config script
-  template: dest={{ ssh_dir }}/etc/sshd_config src=sshd_config_debian.j2 mode=644
-  notify: restart openssh 
-  sudo: true   
-  when: ansible_os_family == "Debian"
+- name: check config file
+  stat: path=/etc/ssh/sshd_config
+  register: ssh_config 
+  ignore_errors: true
 
+- name: create config file link
+  file: src={{ ssh_dir }}/etc dest=/etc/ssh state=link force=yes
+  sudo: true
+  when: ssh_config.stat.exists == false
+
+- name: edit config file replace"
+  lineinfile: dest=/etc/ssh/sshd_config line="{{ item.line }}" regexp="{{ item.regexp }}" backrefs=yes
+  with_items:
+    - {line: "HostKey /etc/ssh/ssh_host_rsa_key", regexp: "^#HostKey /etc/ssh/ssh_host_rsa_key"}
+    - {line: "HostKey /etc/ssh/ssh_host_dsa_key", regexp: "^#HostKey /etc/ssh/ssh_host_dsa_key"}
+    - {line: "#GSSAPIAuthentication yes", regexp: "^GSSAPIAuthentication yes"}
+    - {line: "#GSSAPICleanupCredentials yes", regexp: "^GSSAPICleanupCredentials yes"}
+  sudo: true
 
+- name: edit config file attache lines"
+  lineinfile: dest=/etc/ssh/sshd_config line="{{ item }}" 
+  with_items:
+    - "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1"
+    - "Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour"
+  notify: restart openssh
+  sudo: true
+  
diff --git a/roles/openssh/templates/ssh.initd.centos.j2 b/roles/openssh/templates/ssh.initd.centos.j2
index 456803046a1dbd173ffd96d67f7270a5a129fd92..2596bc122562d23fa0c090f63792afe09212a456 100755
--- a/roles/openssh/templates/ssh.initd.centos.j2
+++ b/roles/openssh/templates/ssh.initd.centos.j2
@@ -31,22 +31,19 @@
 
 # pull in sysconfig settings
 [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
-[ -f /etc/profile.d/modules.sh ] && . /etc/profile.d/modules.sh
-module load openssh
 RETVAL=0
 prog="ssh"
 lockfile=/var/lock/subsys/${prog}
 
 # Some functions to make the below more readable
+SSH_HOME={{ ssh_dir }}
 KEYGEN=${SSH_HOME}/bin/ssh-keygen
 SSHD=${SSH_HOME}/sbin/sshd
-SSHD_CONFIG=${SSH_HOME}/etc/sshd_config
-RSA1_KEY=${SSH_HOME}/etc/ssh_host_key
-RSA_KEY=${SSH_HOME}/etc/ssh_host_rsa_key
-DSA_KEY=${SSH_HOME}/etc/ssh_host_dsa_key
+SSHD_CONFIG=/etc/ssh/sshd_config
+RSA1_KEY=/etc/ssh/ssh_host_key
+RSA_KEY=/etc/ssh/ssh_host_rsa_key
+DSA_KEY=/etc/ssh/ssh_host_dsa_key
 PID_FILE=/var/run/sshd.pid
-##PID_FILE=${SSH_HOME}/var/run/sshd.pid
-##SSHD_LOG="${SSH_HOME}/var/log/sshd.log"
 OPTIONS="-f ${SSHD_CONFIG}"
 runlevel=$(set -- $(runlevel); eval "echo \$$#" )
 
@@ -146,9 +143,6 @@ start()
 	RETVAL=$?
         echo "return $RETVAL"
 	[ $RETVAL -eq 0 ] && touch $lockfile
-	echo "Start OK"
-        sleep 2
-        cp -f /var/run/sshd.pid ${PID_FILE}; cp -f /var/run/sshd.pid.ori /var/run/sshd.pid
 	return $RETVAL
 }
 
diff --git a/roles/openssh/templates/ssh.initd.debian.j2 b/roles/openssh/templates/ssh.initd.debian.j2
index ed562faf160ae3a25e9907f05e2a580069427910..582a256399ba716f8ffd679708854e4cbee04819 100755
--- a/roles/openssh/templates/ssh.initd.debian.j2
+++ b/roles/openssh/templates/ssh.initd.debian.j2
@@ -30,7 +30,7 @@ SSHD_LOG="${SSHD_LOG_DIR}/sshd.log"
 PID_DIR="{{ ssh_pid_dir }}"
 ###PID_DIR="${SSH_HOME}/var/run"
 PID_FILE=${PID_DIR}/sshd.pid
-SSHD_CONFIG=${SSH_HOME}/etc/sshd_config
+SSHD_CONFIG=/etc/ssh/sshd_config
 SSHD="${SSH_HOME}/sbin/sshd"
 SSHD_OPTS="-f ${SSHD_CONFIG}"
 
diff --git a/roles/openssh/templates/sshd_config_centos.j2 b/roles/openssh/templates/sshd_config_centos.j2
deleted file mode 100644
index 0e6611a0a48ffbfad18282d6552a111eb5c4d736..0000000000000000000000000000000000000000
--- a/roles/openssh/templates/sshd_config_centos.j2
+++ /dev/null
@@ -1,138 +0,0 @@
-#	$OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
-
-# This is the sshd server system-wide configuration file.  See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented.  Uncommented options change a
-# default value.
-
-Port {{ ssh_port }} 
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-# Disable legacy (protocol version 1) support in the server for new
-# installations. In future the default will change to require explicit
-# activation of protocol 1
-Protocol 2
-
-# HostKey for protocol version 1
-#HostKey /etc/ssh/ssh_host_key
-# HostKeys for protocol version 2
-#HostKey /etc/ssh/ssh_host_rsa_key
-#HostKey /etc/ssh/ssh_host_dsa_key
-
-# Lifetime and size of ephemeral version 1 server key
-#KeyRegenerationInterval 1h
-#ServerKeyBits 1024
-
-# Logging
-# obsoletes QuietMode and FascistLogging
-#SyslogFacility AUTH
-SyslogFacility AUTHPRIV
-#LogLevel INFO
-
-# Authentication:
-
-#LoginGraceTime 2m
-#PermitRootLogin yes
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-#RSAAuthentication yes
-#PubkeyAuthentication yes
-#AuthorizedKeysFile	.ssh/authorized_keys
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandRunAs nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#RhostsRSAAuthentication no
-# similar for protocol version 2
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# RhostsRSAAuthentication and HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
-PasswordAuthentication no
-
-# Change to no to disable s/key passwords
-#ChallengeResponseAuthentication yes
-ChallengeResponseAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-#KerberosUseKuserok yes
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPIAuthentication yes
-#GSSAPICleanupCredentials yes
-#GSSAPICleanupCredentials yes
-#GSSAPIStrictAcceptorCheck yes
-#GSSAPIKeyExchange no
-
-# Set this to 'yes' to enable PAM authentication, account processing,
-# and session processing. If this is enabled, PAM authentication will
-# be allowed through the ChallengeResponseAuthentication and
-# PasswordAuthentication.  Depending on your PAM configuration,
-# PAM authentication via ChallengeResponseAuthentication may bypass
-# the setting of "PermitRootLogin without-password".
-# If you just want the PAM account and session checks to run without
-# PAM authentication, then enable this but set PasswordAuthentication
-# and ChallengeResponseAuthentication to 'no'.
-#UsePAM no
-UsePAM yes
-
-# Accept locale-related environment variables
-AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
-AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
-AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
-AcceptEnv XMODIFIERS
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-#GatewayPorts no
-#X11Forwarding no
-X11Forwarding yes
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PrintMotd yes
-#PrintLastLog yes
-#TCPKeepAlive yes
-#UseLogin no
-#UsePrivilegeSeparation yes
-#PermitUserEnvironment no
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-#ShowPatchLevel no
-#UseDNS yes
-#PidFile /var/run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp	/usr/libexec/openssh/sftp-server
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-#	X11Forwarding no
-#	AllowTcpForwarding no
-#	ForceCommand cvs server
diff --git a/roles/openssh/templates/sshd_config_debian.j2 b/roles/openssh/templates/sshd_config_debian.j2
deleted file mode 100644
index 32684fa6ad0219fc16dcee7b541b6fce66518651..0000000000000000000000000000000000000000
--- a/roles/openssh/templates/sshd_config_debian.j2
+++ /dev/null
@@ -1,88 +0,0 @@
-# Package generated configuration file
-# See the sshd_config(5) manpage for details
-
-# What ports, IPs and protocols we listen for
-Port {{ ssh_port }} 
-# Use these options to restrict which interfaces/protocols sshd will bind to
-#ListenAddress ::
-#ListenAddress 0.0.0.0
-Protocol 2
-# HostKeys for protocol version 2
-HostKey /etc/ssh/ssh_host_rsa_key
-HostKey /etc/ssh/ssh_host_dsa_key
-HostKey /etc/ssh/ssh_host_ecdsa_key
-HostKey /etc/ssh/ssh_host_ed25519_key
-#Privilege Separation is turned on for security
-UsePrivilegeSeparation yes
-
-# Lifetime and size of ephemeral version 1 server key
-KeyRegenerationInterval 3600
-ServerKeyBits 1024
-
-# Logging
-SyslogFacility AUTH
-LogLevel INFO
-
-# Authentication:
-LoginGraceTime 120
-PermitRootLogin without-password
-StrictModes yes
-
-RSAAuthentication yes
-PubkeyAuthentication yes
-#AuthorizedKeysFile	%h/.ssh/authorized_keys
-
-# Don't read the user's ~/.rhosts and ~/.shosts files
-IgnoreRhosts yes
-# For this to work you will also need host keys in /etc/ssh_known_hosts
-RhostsRSAAuthentication no
-# similar for protocol version 2
-HostbasedAuthentication no
-# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
-#IgnoreUserKnownHosts yes
-
-# To enable empty passwords, change to yes (NOT RECOMMENDED)
-PermitEmptyPasswords no
-
-# Change to yes to enable challenge-response passwords (beware issues with
-# some PAM modules and threads)
-ChallengeResponseAuthentication no
-
-# Change to no to disable tunnelled clear text passwords
-PasswordAuthentication no
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosGetAFSToken no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-X11Forwarding yes
-X11DisplayOffset 10
-PrintMotd no
-PrintLastLog yes
-TCPKeepAlive yes
-#UseLogin no
-
-#MaxStartups 10:30:60
-Banner /etc/ssh/sshd_banner
-
-# Allow client to pass locale environment variables
-AcceptEnv LANG LC_*
-
-Subsystem sftp /usr/lib/openssh/sftp-server
-
-# Set this to 'yes' to enable PAM authentication, account processing,
-# and session processing. If this is enabled, PAM authentication will
-# be allowed through the ChallengeResponseAuthentication and
-# PasswordAuthentication.  Depending on your PAM configuration,
-# PAM authentication via ChallengeResponseAuthentication may bypass
-# the setting of "PermitRootLogin without-password".
-# If you just want the PAM account and session checks to run without
-# PAM authentication, then enable this but set PasswordAuthentication
-# and ChallengeResponseAuthentication to 'no'.
-UsePAM yes